G_M*_*Man 6 .net c# recursion visual-studio-2010 winforms
我正在尝试创建一个函数,将递归复制源文件夹及其中的所有文件和文件夹到其他位置.
目前,我必须在主文件夹中定义每个文件夹,这使得代码变得臃肿和冗余.
有什么更有效的方法呢?
小智 10
看看我的问题:
复制目录的性能 我使用并行foreach,它非常快
private static void CopyAll(string SourcePath, string DestinationPath)
{
string[] directories = System.IO.Directory.GetDirectories(SourcePath, "*.*", SearchOption.AllDirectories);
Parallel.ForEach(directories, dirPath =>
{
Directory.CreateDirectory(dirPath.Replace(SourcePath, DestinationPath));
});
string[] files = System.IO.Directory.GetFiles(SourcePath, "*.*", SearchOption.AllDirectories);
Parallel.ForEach(files, newPath =>
{
File.Copy(newPath, newPath.Replace(SourcePath, DestinationPath));
});
}
Run Code Online (Sandbox Code Playgroud)
来源:C# - 在 c-sharp 中将文件和文件夹从源递归复制到目标文件夹
public static void CopyFolder(string sourceFolder, string destFolder)
{
if (!Directory.Exists(destFolder))
Directory.CreateDirectory(destFolder);
string[] files = Directory.GetFiles(sourceFolder);
foreach (string file in files)
{
string name = Path.GetFileName(file);
string dest = Path.Combine(destFolder, name);
File.Copy(file, dest);
}
string[] folders = Directory.GetDirectories(sourceFolder);
foreach (string folder in folders)
{
string name = Path.GetFileName(folder);
string dest = Path.Combine(destFolder, name);
CopyFolder(folder, dest);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15772 次 |
| 最近记录: |