Главная страница
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.095 c
3-1090414607
starik30
2004-07-21 16:56
2004.08.15
TpFIBStoredProc vs TpFIBDataSet


1-1091088499
Dmitry
2004-07-29 12:08
2004.08.15
Как узнать разницу между двумя датами в днях и в годах?


1-1091507783
Eagle8
2004-08-03 08:36
2004.08.15
запись в файл


1-1091364760
oleg_SYS
2004-08-01 16:52
2004.08.15
Создание файла компонентом в Design-тайме


11-1078914623
Андрей_
2004-03-10 13:30
2004.08.15
Можно ли (и как) с помощью KOL/MCK создать ActiveX control...