Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.05.13;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.07 c
2-1177360993
Jeeb
2007-04-24 00:43
2007.05.13
База Аксес


15-1176381329
Wfeew
2007-04-12 16:35
2007.05.13
Как в delphi 2006 отключить автоматическое появление ...


2-1176981626
lewka
2007-04-19 15:20
2007.05.13
Удаление строк в Access из собственного приложения


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


15-1176723476
Yaros-hoi
2007-04-16 15:37
2007.05.13
Фильтрация по дате