C#关于拷贝的问题,期待高手指点!
下面是一个从源文件夹向目标文件夹拷贝的程序,用的是递归拷贝。srcDir表示源文件夹,destDir表示目的文件夹。运行小的文件夹时,不管其下面的目录多复杂,都能正常执行。但我目前的目录结构为\srcDir\30个文件夹\5~20个不等个数文件夹\500~30000文件夹不等\1~300个文件。拷贝开始时一切正常,时间比较长,夜里就会当机,即使没当机,也会停止拷贝进度。不知是什么原因,期待高人指点迷津。谢谢。
private void Copy(string srcDir, string destDir)
{
if (Directory.Exists(srcDir))
{
if (Directory.GetFileSystemEntries(srcDir).Length == 0)
return;
else
{
foreach (string dir in Directory.GetDirectories(srcDir))
{
string subDir = dir.Substring(srcDir.Length, dir.Length-srcDir.Length);
string destSubDir = destDir + subDir;
try
{
Directory.CreateDirectory(destSubDir);
}
catch (Exception ex)
{
WriteLog(sw, "SubDirectory Copy Error: " + dir, ex.Message);
}
Copy(dir, destSubDir);
}
foreach (string fname in Directory.GetFiles(srcDir))
{
string filename = fname.Substring(sourceDir.Length, fname.Length-sourceDir.Length);
string destFile = destinationDir + filename;
try
{
if (File.GetAttributes(fname) == FileAttributes.Hidden)
continue;
File.Copy(fname, destFile, true);
}
catch (Exception ex)
{
WriteLog(sw, fname, ex.Message);
}
}
}
}
}
浙公网安备 33010602011771号