C# 复制目录的全部内容

作者:编程家 分类: c++ 时间:2025-06-28

复制目录的全部内容是在C#编程中常见的操作之一。在某些情况下,我们可能需要将一个目录及其所有子目录和文件复制到另一个位置,以便备份、移动或共享文件。C#提供了一种简单而有效的方法来实现这个目标。

案例代码:

下面是一个示例代码,演示了如何使用C#复制目录的全部内容:

csharp

using System;

using System.IO;

class Program

{

static void Main(string[] args)

{

string sourceDirectory = @"C:\SourceDirectory";

string targetDirectory = @"C:\TargetDirectory";

CopyDirectory(sourceDirectory, targetDirectory);

Console.WriteLine("目录复制完成。");

}

static void CopyDirectory(string sourceDirectory, string targetDirectory)

{

if (!Directory.Exists(targetDirectory))

{

Directory.CreateDirectory(targetDirectory);

}

string[] files = Directory.GetFiles(sourceDirectory);

foreach (string file in files)

{

string fileName = Path.GetFileName(file);

string targetPath = Path.Combine(targetDirectory, fileName);

File.Copy(file, targetPath, true);

}

string[] subDirectories = Directory.GetDirectories(sourceDirectory);

foreach (string subDirectory in subDirectories)

{

string directoryName = Path.GetFileName(subDirectory);

string targetPath = Path.Combine(targetDirectory, directoryName);

CopyDirectory(subDirectory, targetPath);

}

}

}

代码解析:

上述代码首先定义了源目录和目标目录的路径。然后,使用`CopyDirectory`方法将源目录的全部内容复制到目标目录。

`CopyDirectory`方法首先检查目标目录是否存在,如果不存在,则创建目标目录。接下来,使用`Directory.GetFiles`方法获取源目录中的所有文件,并使用`File.Copy`方法将它们复制到目标目录。

然后,使用`Directory.GetDirectories`方法获取源目录中的所有子目录,并使用递归调用`CopyDirectory`方法将它们复制到目标目录。

最后,当所有文件和子目录都已复制完成,程序输出一条消息表示目录复制完成。

通过使用C#的文件和目录操作函数,我们可以轻松地实现目录的复制。这使得我们可以方便地备份、移动或共享文件,提高了文件操作的效率。在编写代码时,我们需要注意处理文件和目录的异常情况,如目录不存在或目标文件已存在等。通过合理的错误处理,我们可以编写出更加健壮的代码。