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文件夹

///

/// 源文件夹路径

/// 目的文件夹路径

/// 完成状态:success-完成;其他-报错

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目录下了