.net File.Copy работает очень медленно при копировании большого количества небольших файлов (не по сети)

Я делаю для себя простой инструмент резервного копирования для синхронизации папок и столкнулся с серьезным препятствием, используя File.Copy. Выполняя тесты по копированию папки с ~44 000 небольших файлов (почтовых папок Windows )на другой диск в моей системе, я обнаружил, что использование File.Copy было более чем в 3 раза медленнее, чем использование командной строки и запуск xcopy для копирования одни и те же файлы/папки. Моя версия C #копирует файлы более 16 минут, тогда как xcopy занимает всего 5 минут. Я пытался найти помощь по этой теме, но все, что я нашел, это люди, жалующиеся на медленное копирование больших файлов по сети. Это не проблема больших файлов и не проблема сетевого копирования.

Я нашел интересную статью о лучшей замене File.Copy , но в опубликованном коде есть некоторые ошибки, которые вызывают проблемы со стеком, и я далеко не достаточно осведомлен, чтобы исправить проблемы в его коде.

Существуют ли какие-либо распространенные или простые способы заменить File.Copy чем-то более быстрым?

10
задан Guavaman 7 July 2012 в 03:09
поделиться