在C#中,使用System.IO命名空间可以实现文件夹的复制。以下是一个简单的示例代码,用于复制文件夹及其内容:
using System;
using System.IO;
namespace CopyFolder
{
class Program
{
static void Main(string[] args)
{
string sourceFolder = @"C:\source";
string destinationFolder = @"C:\destination";
CopyFolderRecursively(sourceFolder, destinationFolder);
}
static void CopyFolderRecursively(string sourceFolder, string destinationFolder)
{
// 检查源文件夹是否存在
if (!Directory.Exists(sourceFolder))
{
throw new DirectoryNotFoundException($"Source folder '{sourceFolder}' does not exist.");
}
// 创建目标文件夹
Directory.CreateDirectory(destinationFolder);
// 获取源文件夹下的所有文件和文件夹
string[] files = Directory.GetFiles(sourceFolder);
string[] folders = Directory.GetDirectories(sourceFolder);
// 复制文件夹下的所有文件
foreach (string file in files)
{
string fileName = Path.GetFileName(file);
string destFile = Path.Combine(destinationFolder, fileName);
File.Copy(file, destFile);
}
// 复制文件夹下的所有文件夹
foreach (string folder in folders)
{
string folderName = Path.GetFileName(folder);
string destFolder = Path.Combine(destinationFolder, folderName);
CopyFolderRecursively(folder, destFolder);
}
}
}
}
这个示例代码中,CopyFolderRecursively
方法实现了文件夹的递归复制。首先检查源文件夹是否存在,然后创建目标文件夹。接着,获取源文件夹下的所有文件和文件夹,并将其复制到目标文件夹中。如果文件夹下还有子文件夹,则递归调用CopyFolderRecursively
方法,实现子文件夹的复制。
领取专属 10元无门槛券
手把手带您无忧上云