一个拷贝整个文件夹(包括子文件夹)的方法(原创)

王朝asp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

需要引用命名空间:

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);

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航