是的,C#中的Directory
类提供了方法来复制目录。以下是一个示例代码,展示了如何使用Directory.Copy
方法来复制目录及其内容:
using System;
using System.IO;
class Program
{
static void Main()
{
// 源目录路径
string sourceDirectory = @"C:\Source\Directory";
// 目标目录路径
string targetDirectory = @"C:\Destination\Directory";
// 复制目录
DirectoryCopy(sourceDirectory, targetDirectory, true);
Console.WriteLine("目录复制完成。");
}
static void DirectoryCopy(string sourceDirName, string destDirName, bool copySubDirs)
{
DirectoryInfo dir = new DirectoryInfo(sourceDirName);
DirectoryInfo[] dirs = dir.GetDirectories();
// 如果目标目录不存在,则创建它
if (!Directory.Exists(destDirName))
{
Directory.CreateDirectory(destDirName);
}
// 复制目录中的所有文件和子目录
FileInfo[] files = dir.GetFiles();
foreach (FileInfo file in files)
{
string tempPath = Path.Combine(destDirName, file.Name);
file.CopyTo(tempPath, false);
}
// 如果需要复制子目录,则递归调用此方法
if (copySubDirs)
{
foreach (DirectoryInfo subDir in dirs)
{
string tempPath = Path.Combine(destDirName, subDir.Name);
DirectoryCopy(subDir.FullName, tempPath, copySubDirs);
}
}
}
}
在这个示例中,DirectoryCopy
方法接受三个参数:源目录路径、目标目录路径和一个布尔值,指示是否复制子目录。copySubDirs
参数设置为true
时,会递归复制所有子目录及其内容。