2024年2月20日发(作者:)
用C#实现文件夹拷贝
C#中没有拷贝整个文件夹的方法,最近需要用到,就写了一个Demo,拿出来跟大家分享一下
主要思想:
1、 写一个拷贝文件夹的函数CopyFolder,传入源文件夹路径和目的文件夹路径
2、 判断目的文件夹路径是否存在,如果不存在,创建此文件夹
3、 获取源文件夹下的所有文件,拷贝这些文件到目的文件夹
4、 获取源文件夹下的所有文件夹,循环调用CopyFolder(此处利用了递归)
代码:
using System;
using ;
namespace FolderService
{
public class FolderService
{
static void Main(string[] args)
{
if ( != 2)
{
ine("请输入源文件夹地址和目的文件夹地址!");
return;
}
// 判断源文件夹是否存在
if (!(args[0]))
{
ine("源文件夹不存在!");
return;
}
// 拷贝文件夹
FolderService copy = new FolderService();
string flag = lder(args[0], args[1]);
ine(flag);
}
///
/// Copy文件夹
///
/// 源文件夹路径
/// 目的文件夹路径
///
public string CopyFolder(string sPath, string dPath)
{
string flag = "success";
try
{
// 创建目的文件夹
if (!(dPath))
{
Directory(dPath);
}
// 拷贝文件
DirectoryInfo sDir = new DirectoryInfo(sPath);
FileInfo[] fileArray = es();
foreach (FileInfo file in fileArray)
{
(dPath + "" + , true);
}
// 循环子文件夹
DirectoryInfo dDir = new DirectoryInfo(dPath);
DirectoryInfo[] subDirArray = ectories();
foreach (DirectoryInfo subDir in subDirArray)
{
CopyFolder(me, dPath + "//" +
);
}
}
catch (Exception ex)
{
flag = ng();
}
return flag;
}
}
}
测试Dmo:
1、 把代码保存为,把此cs文件放到H:Program
FilesMicrosoft Visual Studio 9.0VC下(具体根据VS安装路径不同,地址有所不同)
2、 打开Visual Studio Tools中的Visual Studio 2008 Command Prompt,把拖到此Command Prompt中,在路径最前方加入csc+空格,回车编译此程序,如下图:
3、 可以在目录H:Program FilesMicrosoft Visual Studio 9.0VC中看到生成了一个文件,运行此文件(打开,把拖到中,加上参数,回车),如下图:
4、 这时可以看到,E:test目录下的文件全部都拷贝到G:test目录下了


发布评论