29 / 29 / 8
Регистрация: 28.01.2013
Сообщений: 211
|
|
1 | |
Многопоточное копирование файлов29.05.2013, 18:44. Показов 2803. Ответов 4
Метки нет Все метки)
(
Пишу небольшую утилитку, которая собой представляет грабер флешки. На данный момент сделал определение подключения флешки, создание списка всех файлов на ней включая все папки и копирование файлов в отдельном потоке. Но вот наткнулся на такую проблемку: на флешке могут быть очень большие файлы, которые долго копируются, а копирование других не продолжается пока не скопируется этот файл. Пробовал сделать для каждого файла свой поток для копирования, но так как их реально много, потоком создается столько, что оперативы не хватает и вылетает исключение. Подскажите, как лучше организовать быстрое копирование всех файлов. Во как)
0
|
|
29.05.2013, 18:44 | |
Ответы с готовыми решениями:
4
Многопоточное чтение больших файлов Многопоточное считывание файлов на сервере Многопоточное чтение больших файлов Подскажите паттерн для задачи (многопоточное чтение и обработка файлов) |
38 / 38 / 11
Регистрация: 21.05.2013
Сообщений: 128
|
|
30.05.2013, 17:37 | 2 |
А что толку от этих потоков, это же вам не процессор с множеством ядер, общая скорость копирования все равно не возрастет?
0
|
29 / 29 / 8
Регистрация: 28.01.2013
Сообщений: 211
|
|
04.06.2013, 17:26 [ТС] | 3 |
Основная проблема не в скорости все же, а в том, чтобы пока копировался большой файл, программа не останавливалась, а продолжала копировать другие. На самом деле уже решил проблему, создавая несколько потоков, которые в свою очередь начинают идти по списку файлов и копировать именно те, которые еще не скопированны и идут они от меньшего к большему, так как более важной инфой на флешках, обычно являются .doc или xls или просто картинки, а большие объемы это уже фильмы или образы, ну и т.д.
0
|
9 / 9 / 0
Регистрация: 13.08.2011
Сообщений: 41
|
|
04.06.2013, 17:51 | 4 |
Чтобы не страдала производительность, лучше приостанавливать копирование большего файла, когда находится меньший, копировать его, а потом продолжать копирование большего.
Один поток - для копирования, второй - для чтения дерева каталогов.
0
|
175 / 92 / 10
Регистрация: 27.05.2013
Сообщений: 290
|
|
04.06.2013, 19:00 | 5 |
Да не так. Просто когда натыкаешься на большие файлы (например условие 50Мб и выше), не копируешь их, а заносишь пути в список. После всей рекурсии папок, у тебя получится список больших файлов - их потом последовательно копируешь куда надо.
0
|
04.06.2013, 19:00 | |
Помогаю со студенческими работами здесь
5
Копирование файлов из списка файлов Копирование файлов Копирование файлов Копирование файлов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |