File.Copy在20000个文件上变慢

时间:2018-05-01 15:27:54

标签: c# file-copying

我正在尝试将+20000文件从一个目录复制到另一个目录,调用三个单独的File.Copy方法。这些文件的范围可以从26KB到3MB。使用三种方法的原因是因为我需要按以下顺序复制这些文件。 * .EXT1 => * .EXT2 => * .EXT3

整个复制程序总共需要2-3个小时。我在这里做错了什么,或者是否有更快的方法从一个目录复制到另一个目录?

utility.GetFilesFromSource("*.EXT1");
utility.CopyFilesToPath(srcPath);

utility.GetFilesFromSource("*.EXT2");
utility.CopyFilesToPath(srcPath);

utility.GetFilesFromSource("*.EXT3");
utility.CopyFilesToPath(srcPath);


public static void GetFilesFromSource(string fileExtension)
{
   try
   {
      FileInfo[] Files = SourceDirectory.GetFiles(fileExtension)
                .Where(f => f.Name.Contains(suffixName)).ToArray();
   }
   catch
   {
      throw;
   }
}

public static void CopyFilesToPath(string path)
{
   try
   {
      foreach (FileInfo file in Files)
      {
         File.Copy(file.FullName, Path.Combine(path, file.Name));
      }
   }
   catch
   {
      throw;
   }
}

0 个答案:

没有答案