Copy Folders in C# using System.IO

后端 未结 9 898
傲寒
傲寒 2020-12-10 03:20

I need to Copy folder C:\\FromFolder to C:\\ToFolder

Below is code that will CUT my FromFolder and then will create my ToFolder. So my FromFolder will be gone and al

9条回答
  •  没有蜡笔的小新
    2020-12-10 04:03

    My version of DirectoryInfo.CopyTo using extension.

    public static class DirectoryInfoEx {
        public static void CopyTo(this DirectoryInfo source, DirectoryInfo target) {
            if (source.FullName.ToLower() == target.FullName.ToLower())
                return;
    
            if (!target.Exists)
                target.Create();
    
            foreach (FileInfo f in source.GetFiles()) {
                FileInfo newFile = new FileInfo(Path.Combine(target.FullName, f.Name));
                f.CopyTo(newFile.FullName, true);
            }
    
            foreach (DirectoryInfo diSourceSubDir in source.GetDirectories()) {
                DirectoryInfo nextTargetSubDir = target.CreateSubdirectory(diSourceSubDir.Name);
                diSourceSubDir.CopyTo(nextTargetSubDir);
            }
        }
    }
    

    And use like that...

    DirectoryInfo d = new DirectoryInfo("C:\Docs");
    d.CopyTo(new DirectoryInfo("C:\New"));
    

提交回复
热议问题