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

Вниз

процент копирования файла   Найти похожие ветки 

 
vajo   (2004-07-02 19:01) [0]

Я копирую файлы таким образом:

function WindowsCopyFile(FromFile, ToDir: string) : boolean;
var S,T   : TFileStream;
   ss:string;
   Siz:Int64;
begin
 FormInstall.lb_FileCopy.Caption:=FromFile;
 Application.ProcessMessages;
 DeleteAllAttr(FromFile);

 ss := Copy(FromFile,length(FromFile),1);
 If ss = "\" then
   begin
     MkDir(FormInstall.ed_Path.Text + Copy(FromFile,3,Length(FromFile)-1));
     Sleep(1000);
     Exit;
   end;

 S := TFileStream.Create(FromFile, fmOpenRead );
 try
   T := TFileStream.Create(ToDir, fmOpenWrite or fmCreate);
   try
     T.CopyFrom(S, S.Size ) ;
     Siz := S.Size;
     Application.ProcessMessages;
     FileSetDate(T.Handle, FileGetDate(S.Handle));
   finally
     T.Free;
   end;
 finally
   S.Free;
 end;
 FormInstall.pb.Progress := FormInstall.pb.Progress + Siz;
end;


Можно ли в этом коде дописать чтобы показывать на сколько процентов скопировался файл?


 
Dimaxx   (2004-07-02 21:22) [1]

Запросто! Сложи размеры всех файлов вместе и засунь их в Progess.MaxValue. Далее прибавляй размер скопированного блока файла к прогрессу и вперед!


 
vajo   (2004-07-04 19:57) [2]

>Dimaxx  
У меня так и идет
FormInstall.pb.Progress := FormInstall.pb.Progress + Siz;
добавляется размер скопированного файла.
А хочется, чтобы параллельно показывался процесс копирования самого файла, а то при копировании файла 200М может сложится впечатление, что программа повисла.


 
Anatoly Podgoretsky ©   (2004-07-04 20:17) [3]

Тогда копируй его кусками


 
GuAV ©   (2004-07-04 20:35) [4]

А не прощели воспользоватся готовым SHFileOperation?


 
Dimaxx   (2004-07-04 22:02) [5]

2 GuAV: Чел хочет ручками - он не ищет легких решений.

2 vajo: Поставь второй прогрессбар и в maxvalue засовывай длину текущего файла. Далее копируешь кусок его и прибавляешь к position длину куска и так до конца.


 
GuAV ©   (2004-07-05 00:04) [6]


> Чел хочет ручками - он не ищет легких решений.

Respect :-)

> 2 vajo: Поставь второй прогрессбар и в maxvalue засовывай
> длину текущего файла. Далее копируешь кусок его и прибавляешь
> к position длину куска и так до конца.

А если не получается, - декапилируй тотал командер и посмотри как сделано :)



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

Текущий архив: 2004.08.15;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.031 c
3-1090551019
aaa_loto
2004-07-23 06:50
2004.08.15
Запрос


1-1091029870
denissoft
2004-07-28 19:51
2004.08.15
сохранить/загрузить Компонент


3-1090407050
Алексей
2004-07-21 14:50
2004.08.15
Вопрос по сортировке данных


6-1087218878
andrey__
2004-06-14 17:14
2004.08.15
RasApi - запуск удал. подключ. из TServiceApplication


14-1090867870
VID
2004-07-26 22:51
2004.08.15
Каким же Вы представляете себе это "будущее" ?