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

Вниз

Как прикрутить ProgressBar к копированию файла?   Найти похожие ветки 

 
_mandrake_   (2004-05-26 19:29) [0]

Как отобразить в ProgressBar процесс копирования файла?


 
SammIk ©   (2004-05-26 19:44) [1]

BOOL CopyFileEx(
 LPCTSTR lpExistingFileName,           // name of existing file
 LPCTSTR lpNewFileName,                // name of new file
 LPPROGRESS_ROUTINE lpProgressRoutine, // callback function
 LPVOID lpData,                        // callback parameter
 LPBOOL pbCancel,                      // cancel status
 DWORD dwCopyFlags                     // copy options
);
http://msdn.microsoft.com


 
_mandrake_   (2004-05-26 19:50) [2]

В Windows SDK Help в заголове к CopyFileEx  написано [New - Windows NT]. Это значит что функция не будет работать под win9x? (У меня win2k, так что проверить на практике пока не могу)


 
SammIk ©   (2004-05-26 20:01) [3]

Да, написано что не поддерживает 9х.
А оно тебе надо?
Можно сделать так:
Открываешь фаил на чтение, создешь новыи пустои фаил(типа копия).
Копируешь из первого во второи, блоками(допустим по 512 баит).
И замеряешь сколько уходит времени, потом прикидываешь сколько
потребуется времени на оставшуюся часть(можно динамически это вычислять). И получился у нас новыи копи фаил виз прогресс)


 
SammIk ©   (2004-05-26 20:09) [4]

Вот приблезительныи код, изабилующии ошибками.
Но думаю смысл будет понятен.
Надеюсь поможет))
h1:=openfile(1.txt,.....);
size:=getfilesize(h1);
h2:=openfile(1.txt,.....CREATE);
repeat
n:=1;
tmp:=getticcount;
readfile(h1,buf,512,...........);
writefile(h2,buf,512,..........);
tmp:=tmp-getticcount;
tmp_time:=((size div 512)*tmp-n*512) div 1000;Сколько будет копироваться оставшаяся часть

n:=n+1;
until size=ss{Типа сколько скопировал};


 
Amoeba ©   (2004-05-27 14:51) [5]


> (У меня win2k, так что проверить на практике пока не могу)

В Win2k работать будет все, что работает в NT


 
Гаврила ©   (2004-05-27 14:58) [6]

Есть такая функция - SHFileOperation
в числе прочего, умеет копировать файл с показом стандартного окошка Windows
с прогрессом, летящими листочками, и прочими аттрибутами


 
Amoeba ©   (2004-05-27 15:03) [7]


> SHFileOperation

На http://www.delphikingdom.com на эту тему есть хорошая статья.


 
Романов Р.В. ©   (2004-05-27 15:06) [8]


> Это значит что функция не будет работать под win9x?

на win9x эта функция работать будет


 
slgeo ©   (2004-05-27 15:21) [9]

В RxLib есть своя функция CopyFile, в параметре которой передается ссылка на ProgressBar



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

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

Наверх




Память: 0.48 MB
Время: 0.044 c
1-1085504186
Mameluke
2004-05-25 20:56
2004.06.06
Работа с MS Word


4-1082800552
Delphist
2004-04-24 13:55
2004.06.06
Где взять мощный справочник по WinApi


1-1085138478
AndersoNRules
2004-05-21 15:21
2004.06.06
Ikonka faila


1-1085645771
Floppy
2004-05-27 12:16
2004.06.06
Удаление файла


3-1084804174
opoloxai
2004-05-17 18:29
2004.06.06
Пароль *.mdb-файла