Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.05.13;
Скачать: [xml.tar.bz2];

Вниз

как отображать процесс копирования КАТАЛОГОВ   Найти похожие ветки 

 
Roman_S ©   (2007-04-21 12:15) [0]

Мастера, подскажите: как отображать процесс копирования КАТАЛОГОВ в ProgressBar-e?


 
ЮЮ ©   (2007-04-21 12:25) [1]

1) Эмпирически.
2) сначала пробежаться по пути копирования, ничего не копируя, только подсчитывая кол-во файлов. Можно имена в список собрать, чтоб потом выволнить копирование линенйно, без рекурсии.
Винда, кстати, при большом объеме иногда выбрасывает сначала окошко "Подготовка к копированию". Наверное то же самое делает :)


 
Roman_S ©   (2007-04-21 12:31) [2]

подсчитывая кол-во файлов  !!!!????

А если один файл 30Кб, а второй 30Мб? Как быть?!
Как Windows проходит копирование? "100 пудов" не по количеству файлов,а по объёму!


 
Roman_S ©   (2007-04-21 12:38) [3]

Особое внимание прошу обратить на статью:
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1086
(рис. 2 Окно с двумя кнопками)
Мне вполне подошло бы:
____________________
Копирование:
\/ Каталог 1
\/ Каталог 2
  Каталог 3  - 78%
  Каталог 4
-----------------------

Но это не решает главного вопроса:
"Как в узнать это реальное значение %!


 
MBo ©   (2007-04-21 12:59) [4]

>А если один файл 30Кб, а второй 30Мб? Как быть?!
тогда подсчитай общий объем, только и разницы...


 
Roman_S ©   (2007-04-21 13:31) [5]

MBo ©   (21.04.07 12:59) [4]
Во-первых: ЮЮ говорил не об объёме, а о количестве файлов!
Во-вторых: хорошо, ты подсчитал общий объем всех каталогов = progressbar1.max, А в процессе копирования как индикатор передвигать будешь?


 
Loginov Dmitry ©   (2007-04-21 13:39) [6]

> А в процессе копирования как индикатор передвигать будешь?


1. Скопировал первые N байт - передвинул на 1.
2. Скопировал следующие N байт - передвинул на 1.
3. См. 2


 
Roman_S ©   (2007-04-21 13:57) [7]

Скопировал первые N байт - передвинул на 1

и где же здесь переменная, с количеством скопированных байт:
CopyFile("c:\1.txt","c:\2.txt",true)?

Если предлагаете идею, просьба подкреплять её кодом!


 
begin...end ©   (2007-04-21 14:19) [8]

SHFileOperation


 
Loginov Dmitry ©   (2007-04-21 14:23) [9]

> Если предлагаете идею, просьба подкреплять её кодом!


Серьезно? Если каждую грошевую идею подкреплять еще и кодом, жизни не хватит.
В данном случае есть очень много способов решить задачу, все они описаны - в справке, в Гугле.
Самый простой - CopyFileEx(). Однако не гарантирую, что в 98 винде она реализована. Примеры по ее использованию ищи в той же справке и в Гугле.


 
Virgo_Style ©   (2007-04-21 15:01) [10]

Roman_S ©   (21.04.07 13:57) [7]
Если предлагаете идею, просьба подкреплять её кодом!


Спасибо хоть не требование


 
{RASkov}   (2007-04-21 16:52) [11]

Или "вручную" копируй BlockRead, BlockWrite с засеканием времени на "кусок" данных и сравнением с общим объемом минус то, что уже скопировано.. - это для времени, а для процентов, сам понимаешь, проще. Пример в F1.
или См[8]


 
homm ©   (2007-04-21 20:31) [12]

> и где же здесь переменная, с количеством скопированных байт:
>
> CopyFile("c:\1.txt","c:\2.txt",true)?


size := GetFileSize("c:\1.txt");

дятел какой-то.


 
Roman_S ©   (2007-04-21 22:01) [13]

size := GetFileSize("c:\1.txt")

Даун! Мы про каталоги разговаривали, а не про отдельные файлы!


 
homm ©   (2007-04-21 22:12) [14]

> Мы про каталоги разговаривали, а не про отдельные файлы!

Да ты шо? А в каталогах что у нас лежит?

1) проходишь по катологу рекурсивно, складывая размер каждого файла в переменную SIZE.
2) Проходишь по тем-же каталогм, рекурсивно копируя файлы, складывая их размер в переменную size, попутно отображаешь процент завершенния операции size/SIZE*100%

—————————————————————————
Модераторы — позор!


 
Германн ©   (2007-04-22 02:44) [15]


> homm ©   (21.04.07 22:12) [14]
>
> > Мы про каталоги разговаривали, а не про отдельные файлы!
>
>
> Да ты шо? А в каталогах что у нас лежит?
>
> 1) проходишь по катологу рекурсивно, складывая размер каждого
> файла в переменную SIZE.
> 2) Проходишь по тем-же каталогм, рекурсивно копируя файлы,
>  складывая их размер в переменную size, попутно отображаешь
> процент завершенния операции size/SIZE*100%
>
> —————————————————————————
> Модераторы — позор!
>


Шутка!
Есть каталог содержащий "огромный" набор вложенных каталогов и ни в одном из них нет ни одного файла! Задача - отобразить процесс копирования такого каталога. :)

Ну и надоело твое "Модераторы — позор!"
Модераторы такие же люди как и ты! И им тоже нужно отдыхать или заниматься своей работой, за которую они получают деньги. А на эти деньги живут их семьи!


 
homm ©   (2007-04-22 05:30) [16]

> Есть каталог содержащий "огромный" набор вложенных каталогов
> и ни в одном из них нет ни одного файла

Ну и пусть «есть» :) Мне то какое дело? Ну добавь папке минимальный вес, скажем 4кб, или по размеру кластера, будет тебе и в этом случае процент копирования.


> за которую они получают деньги

Модераторство на данном ресукрсе весьма добровольное, насколько я знаю, за что им честь и хвала, просто, как сказал Gero главное, что-бы каждый вынес для себя уроки :) Я больше не буду так писать.


 
homm ©   (2007-04-22 21:31) [17]

Ну где-же Roman_S?
Получил ответ на свой вопрос. обозвал дуном, и даж не поблагодарил. Еше один нерага, блин.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2007.05.13;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.043 c
15-1176642479
Knight
2007-04-15 17:07
2007.05.13
Смотрю видео через Paint&#133


2-1177324165
EmGard
2007-04-23 14:29
2007.05.13
Мультимедия - взгляд меломана


2-1177291252
Abcdef123
2007-04-23 05:20
2007.05.13
Как организовать поиск по всему проекту на наличие имени таблицы


2-1177260570
Exile
2007-04-22 20:49
2007.05.13
Help с WinAPI


6-1163216278
Avered
2006-11-11 06:37
2007.05.13
узнать IP клиента проходящего через прокси.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский