思路:递归遍历整个文件夹对每个文件进行复制
Directory.GetDirectories();对文件夹进行操作
Directory.GetFiles();对文件进行操作
代码:
class DirectoryMove
{
public static void DirCopy(string sourceFolderName, string destFolderName)
{
if (!Directory.Exists(sourceFolderName)) {
Console.WriteLine("该文件不存在");
return;
}
//复制文件夹
string[] sourceFilesPath = Directory.GetDirectories(sourceFolderName);//获取指定路径中的文件夹
if (Directory.Exists(sourceFolderName))
{
for (int i = 0; i < sourceFilesPath.Length; i++)
{
string newDir = sourceFilesPath[i].Replace(sourceFolderName, destFolderName);//将原路径替换为移动后的路径
Directory.CreateDirectory(newDir);
DirCopy(sourceFilesPath[i], newDir);//递归
}
}
//复制文件
string[] sourceFile = Directory.GetFiles(sourceFolderName);//获取指定路径中的文件
for (int j = 0; j < sourceFile.Length; j++)
{
string destFile = sourceFile[j].Replace(sourceFolderName, destFolderName);
File.Copy(sourceFile[j], destFile);
}
//删除原文件
Directory.Delete(sourceFolderName, true);
}
}