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

posted on 2005-11-24 13:38  流风岁月  阅读(179)  评论(0)    收藏  举报