您的位置:首页 > 编程语言 > C#

C#中拷贝指定文件夹下的所有文件夹目录到指定文件夹中的方法

2012-05-14 13:25 537 查看
本文给出了一个在C#中拷贝指定文件夹下的所有文件夹目录到指定文件夹中的方法。

public static void CopyFolder(string strFromPath,string strToPath)

{

//如果源文件夹不存在,则创建

if (!Directory.Exists(strFromPath))

{

Directory.CreateDirectory(strFromPath);

}

//取得要拷贝的文件夹名

string strFolderName = strFromPath.Substring(strFromPath.LastIndexOf("\\") +

1,strFromPath.Length - strFromPath.LastIndexOf("\\") - 1);

//如果目标文件夹中没有源文件夹则在目标文件夹中创建源文件夹

if (!Directory.Exists(strToPath + "\\" + strFolderName))

{

Directory.CreateDirectory(strToPath + "\\" + strFolderName);

}

//创建数组保存源文件夹下的文件名

string[] strFiles = Directory.GetFiles(strFromPath);

//循环拷贝文件

for(int i = 0;i < strFiles.Length;i++)

{

//取得拷贝的文件名,只取文件名,地址截掉。

string strFileName = strFiles[i].Substring(strFiles[i].LastIndexOf("\\") + 1,strFiles[i].Length - strFiles[i].LastIndexOf("\\") - 1);

//开始拷贝文件,true表示覆盖同名文件

File.Copy(strFiles[i],strToPath + "\\" + strFolderName + "\\" + strFileName,true);

}

//创建DirectoryInfo实例

DirectoryInfo dirInfo = new DirectoryInfo(strFromPath);

//取得源文件夹下的所有子文件夹名称

DirectoryInfo[] ZiPath = dirInfo.GetDirectories();

for (int j = 0;j < ZiPath.Length;j++)

{

//获取所有子文件夹名

string strZiPath = strFromPath + "\\" + ZiPath[j].ToString();

//把得到的子文件夹当成新的源文件夹,从头开始新一轮的拷贝

CopyFolder(strZiPath,strToPath + "\\" + strFolderName);

}

}

原文地址:http://www.biye5u.com/article/Csharp/fileprog/2011/4198.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: