Требуется около 2 минут, чтобы сделать File.Copy(src, dest);
для 1,6 ГБ файла из папки A в папку B на том же диске. Есть ли более быстрый способ сделать это в С#/.NET в коде (без оборудования) - Что-то с потоком, потоками и т.д.?
Будет ли поток быстрее? Как насчет класса, который разбивает файл с помощью threadpool и читает диапазон байтов/записывает диапазон байтов [это звучит как отличный способ испортить файл, но целостность здесь не является приоритетом 1, его скорость:-) ]
Я искал, но все говорят, что используют File.Copy, но он медленный (так же медленно, как и Windows Copy). Я бы предпочел не использовать сторонний инструмент.
Вот некоторые ответы на некоторые из вопросов:
Сравнение времени копирования:
> C# : 2.15m
> Windows Explorer: 2.53m
> TeraCopy: 2.26m
> FastCopy: 2.24m
Хорошо, это не средние значения, и я знаю, что они могут немного измениться при последующих запусках, но я действительно думал, что будет более быстрый способ скопировать файл, поскольку я предположил, что Windows выполняет дополнительные проверки безопасности и целостности: - (
Я все еще надеюсь на какой-то хороший ответ (например, "о, да, файлы более 1,5 ГБ будут быстрее, если вы сделаете буфер m и отключите безопасность n" ) - хорошо, я просто желаю в этот момент.