目录工具类 - C#小函数类推荐

news2024/10/7 7:31:23

       此文记录的是目录工具类。

/***

    目录工具类

    Austin Liu 刘恒辉
    Project Manager and Software Designer

    E-Mail: lzhdim@163.com
    Blog:   http://lzhdim.cnblogs.com
    Date:   2024-01-15 15:18:00

***/

namespace Lzhdim.LPF.Utility
{
    using System.IO;

    /// <summary>
    /// The Object End of Directory
    /// </summary>
    public static class DirUtil
    {
        /// <summary>
        /// 复制指定目录到另一个目录(包括子目录和所有文件)
        /// </summary>
        /// <param name="sourceDir">源目录</param>
        /// <param name="targetDir">目标目录</param>
        /// <exception cref="DirectoryNotFoundException"></exception>
        public static void CopyDirectory(string sourceDir, string targetDir)
        {
            DirectoryInfo dir = new DirectoryInfo(sourceDir);
            DirectoryInfo[] dirs = dir.GetDirectories();

            // If the source directory does not exist, throw an exception.
            if (!dir.Exists)
            {
                throw new DirectoryNotFoundException($"Source directory does not exist or could not be found: {sourceDir}");
            }

            // If the destination directory does not exist, create it.
            if (!Directory.Exists(targetDir))
            {
                Directory.CreateDirectory(targetDir);
            }

            // Get the files in the directory and copy them to the new location.
            FileInfo[] files = dir.GetFiles();
            foreach (FileInfo file in files)
            {
                string tempPath = Path.Combine(targetDir, file.Name);
                file.CopyTo(tempPath, false);
            }

            // If copying subdirectories, copy them and their contents to the new location.
            foreach (DirectoryInfo subdir in dirs)
            {
                string tempPath = Path.Combine(targetDir, subdir.Name);
                CopyDirectory(subdir.FullName, tempPath);
            }
        }

        /// <summary>
        /// Create a dir
        /// </summary>
        /// <param name="dir">dir which need to create</param>
        /// <returns>true dir is create;false dir is create error</returns>
        public static bool CreateDir(string dir)
        {
            if (!Directory.Exists(dir))
            {
                try
                {
                    Directory.CreateDirectory(dir);

                    return true;
                }
                catch
                { }

                return false;
            }

            return true;
        }

        /// <summary>
        /// Delete a dir
        /// </summary>
        /// <param name="dir">dir which need to delete</param>
        /// <returns>true dir is delete;false dir is delete error</returns>
        public static bool DeleteDir(string dir)
        {
            if (Directory.Exists(dir))
            {
                try
                {
                    Directory.Delete(dir);

                    return true;
                }
                catch
                { }

                return false;
            }

            return false;
        }

        /// <summary>
        /// Check if dir is exist
        /// </summary>
        /// <param name="dir">dir which need to check</param>
        /// <returns>true dir is exist;false dir is not exist</returns>
        public static bool DirIsExist(string dir)
        {
            return Directory.Exists(dir);
        }

        /// <summary>
        /// rename a dir
        /// </summary>
        /// <param name="srcDir">dir which need to rename</param>
        /// <param name="desDir">the renamed dir name</param>
        /// <returns>true rename is done;false rename is error</returns>
        public static bool RenameDir(string srcDir, string desDir)
        {
            try
            {
                Directory.Move(srcDir, desDir);

                return true;
            }
            catch
            { }

            return false;
        }
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2193753.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

tldr命令介绍

tldr命令介绍 安装 TLDR使用 TLDR更新命令仓库 TLDR 是 “Too Long; Didn’t Read” 的缩写&#xff0c;在 Linux中是一个非常有用的工具&#xff0c;旨在为用户提供简洁的命令行工具或程序的使用说明&#xff0c;TLDR的目标是解决传统手册页信息过于繁杂的问题&#xff0c;通过…

独享动态IP是什么?它有什么独特优势吗?

在网络世界中&#xff0c;IP地址扮演着连接互联网的关键角色。随着互联网的发展&#xff0c;不同类型的IP地址也应运而生&#xff0c;其中独享动态ip作为一种新型IP地址&#xff0c;备受关注。本文将围绕它的定义及其独特优势展开探讨&#xff0c;以帮助读者更好地理解和利用这…

使用keras-tuner微调神经网络超参数

目录 随机搜索RandomSearch HyperBand 贝叶斯优化BayesianOptimization 附录 本文将介绍keras-tuner提供了三种神经网络超参数调优方法。它们分别是随机搜索RandomSearch、HyperBand和贝叶斯优化BayesianOptimization。 首先需要安装keras-tuner依赖库,安装命令如…

State of ChatGPT ---- ChatGPT的技术综述

声明&#xff1a;该文总结自AI菩萨Andrej Karpathy在youtube发布的演讲视频。 原视频连接&#xff1a;State of GPT | BRK216HFS 基础知识&#xff1a; Transformer原文带读与代码实现https://blog.csdn.net/m0_62716099/article/details/141289541?spm1001.2014.3001.5501 H…

【GT240X】【06】Linux文本编辑软件vim

目录 一、说明 二、什么是 vim&#xff1f; 三、vi/vim 的使用 3.1 命令模式 3.2 输入模式 3.3 底线命令模式 四、vi/vim 按键说明 4.1 一般模式可用的光标移动、复制粘贴、搜索替换等 4.2 一般模式切换到编辑模式的可用的按钮说明 4.3 一般模式切换到指令行模式的…

案例-博客页面简单实现

文章目录 本文内容只涉及前端1. 内容要求2. 画面展示初始化面演示视频 3. 注意事项4. 代码区js文件夹下的jquery.min.js内容登录代码列表页面创作页面 本文内容只涉及前端 1. 内容要求 登录页面实现博客列表页面实现博客创作页面实现 链接: 开源在线 Markdown 编辑器文本框可…

布草洗涤厂自动统计单据管理打包标签———未来之窗行业应用跨平台架构

一、布草洗涤厂打包标签 二、大酒店楼层送货单 三、独立三联单销售单 四、职员司机统计报表 五、开通方法 扫码开通

大数据新视界 --大数据大厂之 从 Druid 和 Kafka 到 Polars:大数据处理工具的传承与创新

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到 青云交的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

[SAP ABAP] 程序调用

示例数据 学生表(ZDBT_STU_437) 程序&#xff1a; Z437_TEST_20241006 代码如下所示 REPORT Z437_TEST_20241006.* 创建跟表或结构同名的工作区 TABLES: zdbt_stu_437.SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-001.PARAMETERS: p_1 TYPE c LENGTH 4.SELECT-O…

低组装滚珠导轨:承载力强,适应多样工况!

在自动化行业中&#xff0c;高质量、高效率的生产线是确保产品品质和生产效率的关键。而低组装型滚珠导轨作为生产线中的重要组件之一&#xff0c;能够提供精准的直线运动控制&#xff0c;为自动化设备的稳定运行和高精度检测提供可靠支持。 相对于传统的导轨系统来说&#xff…

网站集群批量管理-Ansible-模块管理

1. 概述 1. 自动化运维: 批量管理,批量分发,批量执行,维护 2. 无客户端,基于ssh进行管理与维护 2. 环境准备 环境主机ansible10.0.0.7(管理节点)nfs01 10.0.0.31(被管理节点)backup10.0.0.41(被管理节点) 2.1 创建密钥认证 安装sshpass yum install -y sshpass #!/bin/bash ##…

Renesas R7FA8D1BH (Cortex®-M85)和蓝牙模块通信

目录 概述 1 软硬件 1.1 软硬件环境信息 1.2 开发板信息 1.3 调试器信息 2 硬件架构 2.1 系统架构 2.2 蓝牙模块介绍 3 软件实现 3.1 FSP配置参数 3.2 代码实现 3.2.1 驱动函数 3.2.2 功能函数 概述 本文主要介绍Renesas R7FA8D1BH (Cortex-M85)和蓝牙模块通信的…

【leetcode】274.H指数

为了方便&#xff0c;将 citations 记为 cs。 所谓的 h 指数是指一个具体的数值&#xff0c;该数值为“最大”的满足「至少发表了 x 篇论文&#xff0c;且每篇论文至少被引用 x 次」定义的合法数&#xff0c;重点是“最大”。 用题面的实例 1 来举个 &#x1f330;&#xff0…

hackmyvm-BaseME靶机

主机发现 sudo arp-scan -l 扫描到本地网络靶机ip:192.168.91.173 nmap扫描 sudo nmap 192.168.91.173 发现靶机开放22端口的ssh服务与80端口的http服务 base64加密 我们访问一下80端口&#xff0c;发现了一串加密信息&#xff0c;判读大概是base64加密 base64加密特征&…

软件无线电4-位同步

在数字通信系统中&#xff0c;同步主要有三种方式&#xff0c;载波同步、位同步和群同步。载波同步指在相干解调时&#xff0c;接收机的解调器需要产生一个与调制载波同频同相的相干载波。载波同步又称为载波恢复。位同步指接收机需要产生一个与调制信号符号速率相同&#xff0…

【stm32】ADC的介绍与使用

ADC的介绍与使用 1、ADC介绍2、逐次逼近型ADC3、ADC电路4、ADC基本结构程序代码编写&#xff1a;ADC 通道和引脚复用的关系 5、转换模式&#xff08;1&#xff09;单次转换&#xff0c;非扫描模式转换流程&#xff1a;程序编写&#xff1a; &#xff08;2&#xff09;连续转换&…

Android一个APP里面最少有几个线程

Android一个APP里面最少有几个线程 参考 https://www.jianshu.com/p/92bff8d6282f https://www.jianshu.com/p/8a820d93c6aa 线程查看 Android一个进程里面最少包含5个线程&#xff0c;分别为&#xff1a; main线程(主线程&#xff09;FinalizerDaemon线程 终结者守护线程…

pg 视图

1.概念 2.创建 3.修改 3.删除 4.递归

【量子计算】开辟全新计算范式

1. &#x1f680; 引言1.1 &#x1f680; 量子计算的现状与发展趋势1.2 &#x1f4dc; 量子位、量子门和量子电路的基本概念1.3 &#x1f3c6; 量子计算在科学研究中的作用 2. &#x1f50d; 量子计算的演变与创新2.1 &#x1f31f; 量子计算的发展历程2.2 &#x1f9e0; 量子算…

Dit架构 diffusion范式分类+应用

1.ping 网址 2.ssh nscc/l20 3.crtl,打开vscode的setting 4.win 10修改ssh配置文件及其密钥权限为600 - 晴云孤魂 - 博客园 整体来看&#xff1a; 使用transformer作为其主干网络&#xff0c;代替了原先的UNet 在latent space进行训练&#xff0c;通过transformer处理潜…