| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: WinAPI и системное программирование > Копирование файлов... |
| Автор: WIN32API 17.5.2005, 19:33 |
| Народ, не отсылай меня в ФАГ, т.к. ответа на мой вопрос там нет. Меня интересует копирование файлов (не одного файла, а нескольких), используя при этом msctls_progress32. И msctls_progress32 при этом должен отображать результат копирования всех файлов сразу, как это делает любая программа установки, а не каждого в отдельности. |
| Автор: WolfON 17.5.2005, 23:25 |
| делаешь в дельфе copyfile для каждого файла по очереди и как очередь убывает - добавляешь в прогресс бар. |
| Автор: RA 18.5.2005, 01:37 | ||
ЗЫ: только не надо писать что ответ найден и давать ссылку на библиотеку ленина. |
| Автор: WIN32API 18.5.2005, 09:02 | ||
С кодом прогресса понятно, а как на практике реализовать :
|
| Автор: Quadr0 19.5.2005, 00:04 |
| ... |
| Автор: WIN32API 19.5.2005, 20:03 | ||
Народ, написал я процедурку копирования файлов вместе с подкаталогами и отображения процесса в прогрессбаре, но столкнулся с проблемой подсчета количества файлов (включая подкаталоги). Может, знаете способ? Поделитесь. И еще - можно как-нибудь остановить копирование? Если да то как? Примеры приветствуются!
|
| Автор: _hunter 19.5.2005, 20:29 |
| можно. для этого перед началом копирования нужно выполнить обход все каталогов и посчитать сколько файлов в них содержится. для копирования файлов с возможностью остановки используй CopyFileEx() |
| Автор: WIN32API 20.5.2005, 11:17 |
| CopyFileEx() не работает в 98 винде. Меня это не устраивает. |
| Автор: _hunter 20.5.2005, 13:32 |
| тогда пиши свою функцию |
| Автор: WIN32API 20.5.2005, 13:33 |
| Ну так а я чем занимаюсь? |
| Автор: _hunter 20.5.2005, 13:42 |
| а я откуда знаю? ты задал вопрос -- я ответил. если ты имел в виду не то что спросил -- спроси то, что имел в виду... |
| Автор: WIN32API 21.5.2005, 11:56 | ||
| Заканчиваем флеймить! Итак, повторяю вопрос. Вот моя процедурка:
Народ, написал я процедурку копирования файлов вместе с подкаталогами и отображения процесса в прогрессбаре, но столкнулся с проблемой подсчета количества файлов (включая подкаталоги). Может, знаете способ? Поделитесь. И еще - можно как-нибудь остановить копирование? Если да то как? Примеры приветствуются! и даже очень!!! |
| Автор: Quadr0 21.5.2005, 17:21 |
| ... |
| Автор: WIN32API 22.5.2005, 18:08 |
| Ну, добро - с подсчетом я разберусь... Сейчас серьезно интересует вопрос об остановке копирования. Как это сделать? Вот здесь пожалуйста с примерами, хотя бы косвенными. |
| Автор: Quadr0 22.5.2005, 23:30 |
| ... |
| Автор: WIN32API 23.5.2005, 11:19 |
| Я хочу останавливать (прерывать) копирование. Как это делают все инсталлеры... |
| Автор: _hunter 23.5.2005, 11:52 |
| объясняю еще раз. медленно. остановить CopyFile() нельзя. если хочеш ее остановить пиши свою CopyFile() то, что ты привел -- не функция копирования ( и говорил я не о ней ) |
| Автор: WIN32API 23.5.2005, 13:09 | ||
А зачем останавливать CopyFile? Реальнее остановить FindFirst. Вот тока как это сделать? Может, ввести тупую проверку внутри кода типа
Если вы предложите что-то более корректное - буду признателен. |
| Автор: _hunter 23.5.2005, 13:12 |
| потому что при копировании 700-гигового файла долго в монитор глядеть придется... а других способов и нет. |
| Автор: WIN32API 23.5.2005, 13:40 |
| А ты видел файлы такого размера? (Сорри за флейм) |
| Автор: Quadr0 23.5.2005, 14:27 |
| ... |
| Автор: _hunter 23.5.2005, 15:12 |
| такого -- нет но файлы на пару гигов тоже не секунды копируются... |
| Автор: RA 24.5.2005, 09:42 | ||
| Надеюсь общая идея ясна, а переделать не составит друда.
|