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

Вниз

Отображение прогресса копирования   Найти похожие ветки 

 
Андрей Терехов   (2003-03-30 18:04) [0]

Подскажите как копировать файл, отображая сколько процентов скопировано на данный момент. Использовал CopyFile и SHFileOperation, до конца копирования размер конечного файла недоступен, даже если Application.ProcessMessages.

Спасибо!


 
jack128 ©   (2003-03-30 18:41) [1]

а чем ShFileOperation не нравится? Он какой то там процессбар показывает...

var ShFO : TSHFileOpStruct;
begin
ZeroMemory(@ShFO,SizeOf(ShFO));
ShFO.Wnd := HAndle;
ShFO.wFunc := FO_COPY;
ShFO.pFrom := PChar("d:\Internet"#0);
ShFO.pTo := PChar("d:\Internet1"#0);
ShFO.fFlags := 0;
ShFO.fAnyOperationsAborted := True;
ShFO.lpszProgressTitle := "Show";
if SHFileOperation(ShFO)=0 then ShowMessage("Yra")
else ShowMessage("No");

Если уж совсем никак, то можно создать pTo - файл, читать из pFrom файла мапример 1024 байта, писать в pTo файл - оторажать на форме процесс копирования - так в цикле до победного конца -)

ЗЫ хотя извращения все это


 
Slym ©   (2003-03-30 20:08) [2]

Ищи в Win32SDK по CopyFileEx-
Используя ProgressRoutine - узнаешь скопировано/из
The CopyFileEx function copies an existing file to a new file.

BOOL CopyFileEx(
LPCWSTR lpExistingFileName, // pointer to name of an existing file
LPCWSTR lpNewFileName, // pointer to filename to copy to
LPPROGRESS_ROUTINE lpProgressRoutine, // pointer to the callback function
LPVOID lpData, // to be passed to the callback function
LPBOOL pbCancel, // flag that can be used to cancel the operation
DWORD dwCopyFlags // flags that specify how the file is copied
);


Parameters

lpProgressRoutine

Specifies the address of a callback function of type LPPROGRESS_ROUTINE that is called each time another portion of the file has been copied. This parameter can be NULL. For more information on the progress callback function, see CopyProgressRoutine.



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

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

Наверх




Память: 0.47 MB
Время: 0.016 c
1-94840
etem
2003-05-19 17:32
2003.05.29
% в прогресс баре?


7-95147
a413
2003-03-29 20:58
2003.05.29
Как обработать <Alt>+<Esc>


14-95021
Пастор
2003-05-11 18:31
2003.05.29
Память, занимаемая программой


8-94972
maxfiles
2003-02-14 05:41
2003.05.29
rm


4-95175
Manix
2003-04-01 20:21
2003.05.29
Как послать сообщение программе о нажатии мыши