复制目录中的所有文件

Kut*_*ith 53 c#

如何在一个目录中将所有内容复制到另一个目录而不循环遍历每个文件?

Dan*_*rth 99

你不能.既不提供Directory也不DirectoryInfo提供Copy方法.你需要自己实现这个.

void Copy(string sourceDir, string targetDir)
{
    Directory.CreateDirectory(targetDir);

    foreach(var file in Directory.GetFiles(sourceDir))
        File.Copy(file, Path.Combine(targetDir, Path.GetFileName(file)));

    foreach(var directory in Directory.GetDirectories(sourceDir))
        Copy(directory, Path.Combine(targetDir, Path.GetFileName(directory)));
}
Run Code Online (Sandbox Code Playgroud)

请阅读评论,以了解这种简单方法的一些问题.


Xha*_*ent 17

Msdn有关于此的指导 - 如何:复制目录


Shl*_*Emi 11

您可以使用VB的FileSystem.CopyDirectory方法来简化任务:

using Microsoft.VisualBasic.FileIO;

foo(){
    FileSystem.CopyDirectory(directoryPath, tempPath);
}
Run Code Online (Sandbox Code Playgroud)

  • 我想念VB.人们说你可以用C#做​​同样的事情. (2认同)

Max*_*Max 1

你不能。但是您可以使用某种简洁的代码,例如Directory.GetFiles(mydir).ToList().ForEach(f => File.Copy(f, otherdir + "\\" + Path.GetFileName(f));