/// <summary>
/// 拷贝文件夹及其文件下的所有文件
/// </summary>
/// <param name="SourcePath">要Copy的文件夹</param>
/// <param name="DestinationPath">要复制到哪个地方</param>
/// <param name="overwriteexisting">是否覆盖</param>
/// <returns>范围false标识失败</returns>
private static bool CopyDirectory(string SourcePath, string DestinationPath, bool overwriteexisting)
{
bool ret = false;
if (!Directory.Exists(SourcePath))
{
return ret;
}
char[] splits = new char[2] { '\\', '/' };
try
{
string[] splitArr = SourcePath.Split(splits, StringSplitOptions.RemoveEmptyEntries);
string fistDirectoryName = string.Empty;
if (splitArr[splitArr.Length - 1].Length == 0)
{
fistDirectoryName = splitArr[splitArr.Length - 2];
}
else
{
fistDirectoryName = splitArr[splitArr.Length - 1];
}
string fistDestinationPath = Path.Combine(DestinationPath, fistDirectoryName);
if (!Directory.Exists(fistDestinationPath))
{
Directory.CreateDirectory(fistDestinationPath);
}
foreach (string fls in Directory.GetFiles(SourcePath))
{
File.Copy(fls, Path.Combine(fistDestinationPath, Path.GetFileName(fls)), overwriteexisting);
}
foreach (string drs in Directory.GetDirectories(SourcePath))
{
if (!CopyDirectory(drs, fistDestinationPath, overwriteexisting))
{
ret = false;
break;
}
}
ret = true;
}
catch (Exception ex)
{
Console.WriteLine(ex.StackTrace);
ret = false;
}
return ret;
}
06-19
962
07-21