用csharp写一个方法,复制一个目录中的所有文件和文件夹,包括子文件夹到另一个目录
时间: 2023-05-28 22:06:51 浏览: 326
复制目录下的文件和子目录到新目录
以下是用C#编写的一个复制文件夹的方法,它将递归复制一个目录中的所有文件和子目录到另一个目录:
```
public static void CopyDirectory(string sourceDir, string targetDir)
{
// 创建目标目录
if (!Directory.Exists(targetDir))
{
Directory.CreateDirectory(targetDir);
}
// 获取源目录中的所有文件和子目录
string[] files = Directory.GetFiles(sourceDir);
string[] subDirs = Directory.GetDirectories(sourceDir);
// 复制所有文件
foreach (string file in files)
{
string targetFile = Path.Combine(targetDir, Path.GetFileName(file));
File.Copy(file, targetFile, true);
}
// 递归复制所有子目录
foreach (string subDir in subDirs)
{
string targetSubDir = Path.Combine(targetDir, Path.GetFileName(subDir));
CopyDirectory(subDir, targetSubDir);
}
}
```
此方法接受两个参数:源目录和目标目录。它首先创建目标目录(如果不存在),然后获取源目录中的所有文件和子目录。然后,它复制所有文件到目标目录,并递归复制所有子目录。请注意,此方法会覆盖目标目录中的任何相同文件或目录。如果您需要更复杂的复制逻辑(例如,跳过特定文件或目录),则需要修改此方法。
阅读全文