![]() |
|
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]()
|
|
| northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: нет Всего: 20 |
Для вас да. А вот меня она заинтересовала. Ибо скорость копирования - это скорость копирования не более того. Тем более, что скорость копирования зависит ещё и от конфигурации компьютерного железа. А вот время выполнения копирования функцией SHFileOperation мне гораздо более интересно. Как, когда и от чего это время зависит? -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
| XperT |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 269 Регистрация: 19.8.2006 Репутация: 1 Всего: 4 |
Ну если разберетесь - буду рад услышать решение. К сожалению у меня проект стоял пока я этим копированием занимался и пришлось удовлетворятся тем, что имел (тем более, что производительность та же, да и с отловом ошибок при копировании большого количества файлов проще). Это сообщение отредактировал(а) XperT - 3.5.2012, 00:35 |
|||
|
||||
| northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: нет Всего: 20 |
Ну тогда помогите мне задать начальные условия для проверки. Как вы формировали список из 30000 файлов для копирования? 1. В случае копирования через проводник 2. В случае копирования через вашу программу -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
| XperT |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 269 Регистрация: 19.8.2006 Репутация: 1 Всего: 4 |
Есть папка с файлами (пробовал по разному: и с подпапками, и все картинки в одной папке - разницу не заметил). В папке находятся аватарки в большом количестве (по сути большое количество маленьких файлов)
1. В проводнике: выделяю папку -> Ctrl+C -> открываю другую папку (на другом диске) -> Ctrl+V 2. В программе: парсится папка с файлами -> формируется список файлов -> отправляется в функцию копирования файлов Замер скорости копирования во втором случае начинается с момента появления окошка копирования (т.е. исключается время парсинга списка файлов). |
|||
|
||||
| Keeper89 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 14 Всего: 58 |
Ну ты в одном случае копируешь папку, а в другом список файлов. Что если попробовать делать копии одного и того же, например папку в обоих случаях?
|
|||
|
||||
| XperT |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 269 Регистрация: 19.8.2006 Репутация: 1 Всего: 4 |
Дело в том, что в некоторых случаях программа должна копировать не все файлы, а в некоторых даже не все файлы в одну папку, потому интересовал универальный способ быстрого копирования
|
|||
|
||||
| northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: нет Всего: 20 |
Вот почему я и спросил "Как вы формировали список из 30000 файлов для копирования?". Продолжаю настаивать на том, что нужно разобраться в причинах того самого зависания. -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
| Keeper89 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 14 Всего: 58 |
Все-таки сравнивать нужно одни и те же вещи - проводник копирует папку, и в программе копируем папку. Также и с файлами - если формируем список сами, также сделать и в проводнике если получится. Уверен, что результаты будут при прочих равных условях одинаковыми. |
|||
|
||||
| XperT |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 269 Регистрация: 19.8.2006 Репутация: 1 Всего: 4 |
Проводник:
1. Зашел в папку с картинками, выделил все файлы, копировал - произошла задержка на 5 сек 2. Открыл папку назначения, Ctrl + V, произошла задержка в 3 сек для оценки и сразу запустилось копирование 3. Процесс копирования длился 3 мин 15 сек 4. Под конец копирования никаких зависаний не было, окно сразу же закрылось Итого: немного медленее чем при копировании папки, но всё равно на много быстрее чем через SHFileOperation |
|||
|
||||
| Keeper89 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 14 Всего: 58 |
Мне прям интересно стало, надо вечером вбить, попробовать
|
|||
|
||||
| XperT |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 269 Регистрация: 19.8.2006 Репутация: 1 Всего: 4 |
Есть подозрение, что в Вин7 проводник использует другую WinAPI функцию для копирования (которая появилась только в висте или 7).
|
|||
|
||||
![]()
|
| Правила форума "Delphi: WinAPI и системное программирование" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |