Рейтинг:
13
Sergey Alexandrovich Kryukov
Я не думаю, что тебе нужно что-то, кроме System.IO.File.Copy
Я не знаю, как вам нужно определить набор файлов для копирования, но вы могли бы использовать его System.IO.Directory
На практике, особенно для приложений пользовательского интерфейса, вам нужно будет использовать отдельный поток для таких операций.
—СА
Рейтинг:
1
pdoxtader
Я потратил на это некоторое время. Не бойтесь использовать несколько потоков для ваших операций копирования, даже если вы найдете некоторые источники, которые утверждают, что это не быстрее. Это неправда - вы только посмотрите Команды Robocopy.
На самом деле, Робокопия может быть вашим единственным решением.
-Пит
Philippe Mori
Слишком большая многопоточность может окончательно убить производительность, так как головки дисков будут двигаться больше. Это относительно легко увидеть, даже просто используя Проводник Windows и запустив кучу копий, использующих одни и те же диски.
pdoxtader
Вы когда-нибудь писали приложение для копирования файлов, чтобы проверить это самостоятельно? Не доверяйте собственному приложению microsoft. Вы не знаете, что они делают, кроме копирования байтов из одного места в другое. сделать это самостоятельно.
У меня есть, и я смог увидеть преимущество в производительности при копировании сразу 500 файлов. К моему удивлению, я обнаружил, что реальная задержка в копировании файлов не была связана с чтением, а затем записью байтов - это само создание файла (для небольших файлов - это удивительно сложная тема).
Не принимайте только то, что вы видите с помощью утилит Microsoft (или на MSDN), как итог. Сделать это самостоятельно. Проверьте это сами.
-Пит