如何在.NET中复制文件夹和所有子文件夹和文件?

dth*_*her 29 .net directory copy file

可能重复:
在C#中复制目录的全部内容的最佳方法

我想在.NET中将包含其所有子文件夹和文件的文件夹从一个位置复制到另一个位置.最好的方法是什么?

我在System.IO.File类上看到了Copy方法,但是想知道是否有一种比抓取目录树更简单,更好或更快的方法.

Mic*_*tta 49

嗯,这是Steve引用的VisualBasic.dll实现,这是我用过的东西.

private static void CopyDirectory(string sourcePath, string destPath)
{
    if (!Directory.Exists(destPath))
    {
        Directory.CreateDirectory(destPath);
    }

    foreach (string file in Directory.GetFiles(sourcePath))
    {
        string dest = Path.Combine(destPath, Path.GetFileName(file));
        File.Copy(file, dest);
    }

    foreach (string folder in Directory.GetDirectories(sourcePath))
    {
        string dest = Path.Combine(destPath, Path.GetFileName(folder));
        CopyDirectory(folder, dest);
    }
}
Run Code Online (Sandbox Code Playgroud)


Ste*_*idi 12

Michal Talaga在帖子中引用了以下内容:

  • 微软解释为什么在.NET中不应该有Directory.Copy()操作.
  • 从Microsoft.VisualBasic.dll程序集实现CopyDirectory().

但是,基于File.Copy()并且Directory.CreateDirectory()应该满足最基本需求的递归实现.