Главная страница
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.024 c
1-1085178195
Tolik
2004-05-22 02:23
2004.06.06
Ошибка при обращении к процедуре BlockRead


6-1082097730
grvakh
2004-04-16 10:42
2004.06.06
Пакеты UDP в TNMUDP


14-1084881365
Андрей
2004-05-18 15:56
2004.06.06
Кольцо!


3-1084840121
Lego82
2004-05-18 04:28
2004.06.06
Как перенести таблицу StringGrid в БД Paradox


1-1085166464
leonidus
2004-05-21 23:07
2004.06.06
Очень надо сделать меню с двигающимися панелями инструментов