@maxcad

Виснет программа при зписи на диск много мелких файлов?

Вопрос. Как правильно организовать запись десятков тысяч мелких файлов на диск?
До 3000-5000 файлов по 40Кб записываются довольно быстро. А если их 200 000 или миллион то программа зависает а диск перестает отвечать и через некоторое время система виснет и перезагрузить компьютер можно только через кнопку ресет.

Код записи в упрощенном варианте выглядит примерно так.
Есть массив files[] с именами файлов. Обходим его и записываем.
foreach(string filename in files)
 {     
       File.Copy("src.txt", filename, true);
 }


Когда программа и система виснут, после перезагрузки остается примерно 20 000 файлов. Цикл расчитан примерно на запись 100 000
  • Вопрос задан
  • 105 просмотров
Решения вопроса 1
@maxcad Автор вопроса
Можно удалять тему.
Запись производилась на диск, зашифрованный VeraCrypt. На обычные диски пишется без проблем.
Виснет VeraCrypt, это у нее проблемы. Множественная запись мелких файлов она такая.

Тут походу надо делать паузы , чтобы шифрованный контейнер мог отдышаться .
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
vabka
@vabka Куратор тега C#
Токсичный шарпист
1. Используй File.OpenRead, File.OpenWrite, и WriteAllBytesAsync, чтобы процессор не простаивал, пока файлы копируются
2. Копируй их параллельно, а не по одному.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы