小编典典

在 C# 中复制目录的全部内容

all

我想在 C# 中将目录的全部内容从一个位置复制到另一个位置。

似乎没有办法使用System.IO没有大量递归的类来做到这一点。

如果我们添加对 的引用,我们可以使用 VB 中的一种方法Microsoft.VisualBasic

new Microsoft.VisualBasic.Devices.Computer().
    FileSystem.CopyDirectory( sourceFolder, outputFolder );

这似乎是一个相当丑陋的黑客。有没有更好的办法?


阅读 204

收藏
2022-03-07

共1个答案

小编典典

容易得多

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);
    }
}
2022-03-07