Главная страница
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.012 c
6-94981
Provodnick
2003-02-12 09:00
2003.05.29
Как узнать IP-адрес компьютера в ЛС.


3-94665
bert
2003-05-12 14:47
2003.05.29
Вложеные запросы


14-95092
Андрей Ш.
2003-05-09 20:24
2003.05.29
Help Workshop


1-94867
Aleksandr
2003-05-20 11:20
2003.05.29
Что за глюк с вычислениями времени?


3-94730
Инна
2003-05-08 21:55
2003.05.29
ADODataSet как Table