我想在 C# 中将目录的全部内容从一个位置复制到另一个位置。
似乎没有办法使用System.IO没有大量递归的类来做到这一点。
System.IO
如果我们添加对 的引用,我们可以使用 VB 中的一种方法Microsoft.VisualBasic:
Microsoft.VisualBasic
new Microsoft.VisualBasic.Devices.Computer(). FileSystem.CopyDirectory( sourceFolder, outputFolder );
这似乎是一个相当丑陋的黑客。有没有更好的办法?
容易得多
private static void CopyFilesRecursively(string sourcePath, string targetPath) { //Now Create all of the directories foreach (string dirPath in Directory.GetDirectories(sourcePath, "*", SearchOption.AllDirectories)) { Directory.CreateDirectory(dirPath.Replace(sourcePath, targetPath)); } //Copy all the files & Replaces any files with the same name foreach (string newPath in Directory.GetFiles(sourcePath, "*.*",SearchOption.AllDirectories)) { File.Copy(newPath, newPath.Replace(sourcePath, targetPath), true); } }