File.Copy медленный на 20000 файлов - PullRequest
0 голосов
/ 01 мая 2018

Я пытаюсь скопировать около 20000 файлов из одного каталога в другой, вызывая три отдельных метода File.Copy. Эти файлы могут иметь размер от 26 КБ до 3 МБ. Причина использования трех методов заключается в том, что мне нужно скопировать эти файлы в следующем порядке. * .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;
   }
}
...