需要引用命名空间:
using System.IO;
/// <summary>
/// 拷贝文档夹(包括子文档夹)到指定文档夹下,源文档夹和目标文档夹均需绝对路径. 格式: CopyFolder(源文档夹,目标文档夹);
/// </summary>
/// <param name="strFromPath"></param>
/// <param name="strToPath"></param>
//--------------------------------------------------
//作者:kgdiwss QQ:305725744
//---------------------------------------------------
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.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!



