首页 > 编程语言 >目录工具类 - C#小函数类推荐

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

时间:2024-10-05 09:34:15浏览次数:8  
标签:return string C# Directory false true 目录 dir 函数

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

/***

    目录工具类

    Austin Liu 刘恒辉
    Project Manager and Software Designer

    E-Mail: [email protected]
    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;
        }
    }
}

 

标签:return,string,C#,Directory,false,true,目录,dir,函数
From: https://www.cnblogs.com/lzhdim/p/18340687

相关文章

  • 南沙C++信奥赛陈老师解一本通题: 1828:【02NOIP提高组】均分纸牌
    ​ 【题目描述】有n堆纸牌,编号分别为 1,2,…,n。每堆上有若干张,但纸牌总数必为nn的倍数。可以在任一堆上取若干张纸牌,然后移动。移牌规则为:在编号为1的堆上取的纸牌,只能移到编号为 2 的堆上;在编号为 n 的堆上取的纸牌,只能移到编号为n−1的堆上;其他堆上取的纸牌,可以移到相......
  • HashiCorp联合创始人:Go是成功且无悔的选择
    HashiCorp联合创始人:Go是成功且无悔的选择TonyBai ​关注他 42人赞同了该文章 提到HashiCorp这个公司,可能很多人都没听说过。但提到vagrant、consul、nomad、terraform或者vault,那么你一定对这些工具或其中之一有所耳闻。这些工具都是HashiCorp这......
  • 学英语工具集KindleVocab和WordSaver
    学英语坚持不下去是因为没选好工具。我现在用的工具是Kindle+网页读新闻生词点按之后导出到Anki背诵借助工具,整个过程几乎无痛1.Kindle生词及所在句子导出软件KindleVocab,导出Kindle生词和所在句子为anki导入格式介绍和使用方式https://engapi.com/article/11675这个博客......
  • 冲刺 CSP 联训模拟 2
    T1挤压概率期望,二进制拆位看到异或想到拆位算贡献\[\begin{aligned}ans&=\sum_xx^2P(x)\\&=\sum_x(b_1+b_2+...+b_{30})^2P(x)\\\(b_i表示\x\二进制下\i\位的值)\\&=\sum_x(b_1b_1+b_1b_2+...b_{30}b_{29}+b_{30}b_{30})P(x)\\&=\sum_i^{30}\sum_j^{30......
  • Cisco Secure Client 5.1.6.103 (macOS, Linux, Windows & iOS, Andrord) - 远程访问
    CiscoSecureClient5.1.6.103(macOS,Linux,Windows&iOS,Andrord)-远程访问客户端思科安全客户端(包括AnyConnect)请访问原文链接:https://sysin.org/blog/cisco-secure-client-5/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgCiscoSecureClient(includi......
  • Cisco Secure Firewall 3100 Series FTD Software 7.6.0 & ASA Software 9.22.1
    CiscoSecureFirewall3100SeriesFTDSoftware7.6.0&ASASoftware9.22.1FirepowerThreatDefense(FTD)Software-思科防火墙系统软件请访问原文链接:https://sysin.org/blog/cisco-firepower-3100/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgCiscoSec......
  • WPS股票价格查询EXCEL表格
    第一步在表格内使用公式=GetStockSource(Stock_code)查询股票的即时交易信息,Stock_code表示股票代码;第二步通过公式从Source中提取所需要的数据,可以提取股票名称、价格、涨跌幅、收盘价格、成交额、成交量、换手率等。公式如下:GetStockSource(Stock_code),查询股票即时交易信息G......
  • 2024 ciscn WP
    一、MISC1.火锅链观光打卡打开后连接自己的钱包,然后点击开始游戏,答题八次后点击获取NFT,得到有flag的图片没什么多说的,知识问答题兑换NFTFlag{y0u_ar3_hotpot_K1ng}2.PowerTrajectoryDiagram方法1:使用py中的numpy和pandas库读取npz文件并保存为csv文件,代码如下:importnumpyasn......
  • 1.1第一个C++程序
    1.启动Dev-C++        启动界面如图所示:2.新建源代码        单击文件[F]——新建[N]——源代码[S]3.输入代码        在右侧编辑区输入以下代码#include<bits/stdc++.h>usingnamespacestd;intmain(){cout<<"HelloWorld!"<<endl;......
  • At_pakencamp_2023_day1_p sol
    题面给你两个序列\(A,B\),\(\forallu,v(u\not=v)\)之间边的权值为\(a_ua_v+b_ub_v\)。求最小生成树的边权和。原题目editorial朴素的想法考虑类似题目的做法,考虑每一次寻找最小的然后加入。发现这种思想和Boruvka比较相似。于是我们考虑Boruvka的方式来做。对现有的连......