可以使用C#的File类中的Copy方法来复制文件到指定文件夹。下面是一个示例代码片段,展示如何将名为sourceFile的文件复制到名为destinationFolder的目标文件夹:
string sourceFile = @"C:\SourceFolder\file.txt";
string destinationFolder = @"C:\DestinationFolder";
// 如果目标文件夹不存在,则创建目标文件夹
if (!Directory.Exists(destinationFolder))
{
Directory.CreateDirectory(destinationFolder);
}
// 获取源文件的文件名并将其添加到目标文件夹路径中
string fileName = Path.GetFileName(sourceFile);
string destFile = Path.Combine(destinationFolder, fileName);
// 复制源文件到目标文件夹
File.Copy(sourceFile, destFile, true);
可以使用C#的Directory类中的Copy方法来复制文件夹。下面是一个示例代码片段,展示如何用递归的方式把名为sourceFolder的文件夹的所有文件和子文件夹及文件复制到名为destinationFolder的目标文件夹:
string sourceFolder = @"C:\SourceFolder";
string destinationFolder = @"C:\DestinationFolder";
// 如果目标文件夹不存在,则创建目标文件夹
if (!Directory.Exists(destinationFolder))
{
Directory.CreateDirectory(destinationFolder);
}
// 复制源文件夹和其所有内容到目标文件夹
DirectoryCopy(sourceFolder, destinationFolder, true);
// 递归复制文件夹和其所有内容
public static void DirectoryCopy(string sourceDirName, string destDirName, bool copySubDirs)
{
DirectoryInfo dir = new DirectoryInfo(sourceDirName);
DirectoryInfo[] dirs = dir.GetDirectories();
// 如果源文件夹不存在,则引发异常
if (!dir.Exists)
{
throw new DirectoryNotFoundException("Source directory does not exist or could not be found: " + sourceDirName);
}
// 如果目标文件夹不存在,则创建目标文件夹
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, true);
}
// 如果需要复制子文件夹,则递归复制它们
if (copySubDirs)
{
foreach (DirectoryInfo subdir in dirs)
{
string tempPath = Path.Combine(destDirName, subdir.Name);
DirectoryCopy(subdir.FullName, tempPath, copySubDirs);
}
}
}
在上面的示例中,DirectoryCopy方法是递归函数,它会复制源文件夹和其所有内容到目标文件夹。 DirectoryCopy方法还使用copySubDirs参数来指定是否要复制子文件夹。