Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > .NET для новичков > Функция для копирования файлов |
Автор: kiler4747 1.7.2011, 17:38 | ||
Написал программу для копирования файлов. Само копирование происходит в отдельном потоке. Мне нужно чтобы при копировании отображался сам процесс на progressBar-е и в label поэтому класс File не подходит. При тесте функции копирования использовал флэшку с NTFS, скорость была нормальная(10мб/с), но при использовании флэшки с FAT скорость копирования падает до 1мб/с и ниже. Форматировал первую флэшку в FAT - точно такой же результат. Почему так происходит и как это исправить? Если функцию написать на C++ скорость копирования будет зависеть от типа файловой системы?
|
Автор: jonie 1.7.2011, 17:41 |
один фиг не надо каждый раз (каждую итерацию) делать уведомления гуя о процетах. Получите размер файла - поделите на 100 - получите чему равен 1% (если уж вы хотите по 1% показывать, хотя и это глупо) - и вызывайте тогда когда надо. |
Автор: kiler4747 1.7.2011, 18:02 |
Я пробывал полностью выключать отображение процесса, т.е. while ((byt = TempSours.Read(buffer, 0, 4096)) == 4096) { Temp.Write(buffer, 0, byt); } Но всеравно скорость записи очень низкая. |
Автор: kiler4747 2.7.2011, 14:32 | ||
Решил проблему увеличение буфера с 4096 до 4096 * 100. Можно делать и через класс File и нужно пустить второй поток для отображения информации:
![]() |
Автор: cream 3.7.2011, 16:05 |
kiler4747, а теперь какая скорость копирования на флешку с FAT? |