/// <summary>
/// 将SourcePath下的所有目录和文件复制到DestPath下
/// </summary>
/// <param name="SourcePath">源路径</param>
/// <param name="DestPath">目标路径</param>
/// <param name="flag">true覆盖; false不覆盖</param>
private static void Copy_Directory(string SourcePath,string DestPath,bool flag)
{
//取得文件路径数组
string[] arrFiles=Directory.GetFiles(SourcePath);
if(arrFiles.Length>0)
//复制全部文件
foreach(string FileName in arrFiles)
{
//取得文件名+后缀
string strFileName=FileName.Substring(FileName.LastIndexOf("\\"));
//如果不覆盖文件且文件存在,则跳出,进入下一次循环。
//if(!flag&&File.Exists(DestPath+strFileName)) continue;
File.Copy(SourcePath+strFileName,DestPath+strFileName,flag);
}
//取得目录路径数组
string[] arrDirectorys=Directory.GetDirectories(SourcePath);
if(arrDirectorys.Length>0)
//复制全部目录
foreach(string DirectoryName in arrDirectorys)
{
string strDirectoryName=DirectoryName.Substring(DirectoryName.LastIndexOf("\\"));
string strDestPath=DestPath+strDirectoryName;
string strSourcePath=SourcePath+strDirectoryName;
if(!Directory.Exists(strDestPath))
Directory.CreateDirectory(strDestPath);
Copy_Directory(strSourcePath,strDestPath,flag,ref ErrorMessage);
}
}
/// 将SourcePath下的所有目录和文件复制到DestPath下
/// </summary>
/// <param name="SourcePath">源路径</param>
/// <param name="DestPath">目标路径</param>
/// <param name="flag">true覆盖; false不覆盖</param>
private static void Copy_Directory(string SourcePath,string DestPath,bool flag)
{
//取得文件路径数组
string[] arrFiles=Directory.GetFiles(SourcePath);
if(arrFiles.Length>0)
//复制全部文件
foreach(string FileName in arrFiles)
{
//取得文件名+后缀
string strFileName=FileName.Substring(FileName.LastIndexOf("\\"));
//如果不覆盖文件且文件存在,则跳出,进入下一次循环。
//if(!flag&&File.Exists(DestPath+strFileName)) continue;
File.Copy(SourcePath+strFileName,DestPath+strFileName,flag);
}
//取得目录路径数组
string[] arrDirectorys=Directory.GetDirectories(SourcePath);
if(arrDirectorys.Length>0)
//复制全部目录
foreach(string DirectoryName in arrDirectorys)
{
string strDirectoryName=DirectoryName.Substring(DirectoryName.LastIndexOf("\\"));
string strDestPath=DestPath+strDirectoryName;
string strSourcePath=SourcePath+strDirectoryName;
if(!Directory.Exists(strDestPath))
Directory.CreateDirectory(strDestPath);
Copy_Directory(strSourcePath,strDestPath,flag,ref ErrorMessage);
}
}