美文网首页
C# 文件夹复制

C# 文件夹复制

作者: Messix_1102 | 来源:发表于2023-12-19 09:56 被阅读0次

C# 文件夹复制

using System;
using System.IO;

namespace ConsoleAppDemo
{
    internal class Program
    {
        static void Main(string[] args)
        {
            CopyFolder("D:\\Share", "D:\\Share2");
            Console.WriteLine("done");
            Console.ReadLine();
        }

        /// <summary>
        /// 文件夹复制
        /// </summary>
        /// <param name="source"></param>
        /// <param name="destination"></param>
        public static void CopyFolder(string source, string destination) 
        {
            if (!Directory.Exists(destination))
            {
                Directory.CreateDirectory(destination);
            }
            RecursiveCopyChildren(source, destination);
        }

        /// <summary>
        /// 文件/文件夹 递归复制
        /// </summary>
        /// <param name="sourceDir"></param>
        /// <param name="targetDir"></param>
        public static void RecursiveCopyChildren(string sourceDir, string targetDir)
        {
            DirectoryInfo dinfo = new DirectoryInfo(sourceDir);
            // 注,这里面传的是路径,并不是文件,所以不能包含带后缀的文件
            foreach (FileSystemInfo f in dinfo.GetFileSystemInfos())
            {
                // 目标路径 targetName = 新文件夹路径 + 源文件夹下的子文件(或文件夹)名字
                // Path.Combine(string a ,string b) 为合并两个字符串
                string targetName = Path.Combine(targetDir, f.Name);

                if (f is FileInfo)
                {
                    // 如果是文件就复制
                    // true代表可以覆盖同名文件
                    File.Copy(f.FullName, targetName, true);
                }
                else
                {
                    // 如果是文件夹就创建文件夹,然后递归复制
                    if (!Directory.Exists(targetName))
                    {
                        Directory.CreateDirectory(targetName);
                    }
                    RecursiveCopyChildren(f.FullName, targetName);
                }
            }
        }
    }
}

相关文章

网友评论

      本文标题:C# 文件夹复制

      本文链接:https://www.haomeiwen.com/subject/srszgdtx.html