Главная страница
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.013 c
1-94803
lexusU
2003-05-17 17:25
2003.05.29
Как написать DLL ? (пример будет очень кстати)


3-94747
Andrey-k
2003-05-10 20:40
2003.05.29
Win9.x и клиент InterBase для них


1-94896
cult
2003-05-16 12:24
2003.05.29
Глупый вопрос про ActiveX


1-94905
sevylor
2003-05-17 05:27
2003.05.29
OS


4-95161
caesar
2003-04-02 10:58
2003.05.29
SystemTray