Текущий архив: 2003.07.07;
Скачать: CL | DM;
Вниз
Прогресс при копировании Найти похожие ветки
← →
Intell (2003-06-24 20:36) [0]Я копирую файл так:
Copyfile(PChar(form1.Edit12.text),PChar(form1.Edit2.text),true)
а как узнать и вывести прогресс копирования в Gauge?
← →
Джо (2003-06-24 20:49) [1]Копируй по байтам!!!
← →
Intell (2003-06-24 20:54) [2]подробней можно, у меня примеров по копированию много, но допереть о прогрессе не могу.
← →
Романов Р.В. (2003-06-24 21:00) [3]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
← →
INCOGNITO (2003-06-24 23:49) [4]Копирование методом TurboPascal Type
TCallBack=procedure (Position,Size:Longint); {Для индикации
процесса копирования}
procedure FastFileCopy(Const InfileName, OutFileName: String;
CallBack: TCallBack);
Const BufSize = 3*4*4096; { 48Kbytes дает прекрасный результат }
Type
PBuffer = ^TBuffer;
TBuffer = array [1..BufSize] of Byte;
var
Size : integer;
Buffer : PBuffer;
infile, outfile : File;
SizeDone,SizeFile: Longint;
begin
if (InFileName <> OutFileName) then
begin
buffer := Nil;
AssignFile(infile, InFileName);
System.Reset(infile, 1);
try
SizeFile := FileSize(infile);
AssignFile(outfile, OutFileName);
System.Rewrite(outfile, 1);
try
SizeDone := 0; New(Buffer);
repeat
BlockRead(infile, Buffer^, BufSize, Size);
Inc(SizeDone, Size);
CallBack(SizeDone, SizeFile);
BlockWrite(outfile,Buffer^, Size)
until Size < BufSize;
FileSetDate(TFileRec(outfile).Handle,
FileGetDate(TFileRec(infile).Handle));
finally
if Buffer <> Nil then Dispose(Buffer);
System.close(outfile)
end;
finally
System.close(infile);
end;
end else
Raise EInOutError.Create("File cannot be copied into itself");
end;
← →
Babay (2003-06-25 05:07) [5]а можно использовать SHFileOperation он и скопирует и прогресс стандартный виндовозный может показать, может сразу папку скопировать и много другого чего. Рекомендую сам уже давно пользую и не жалею.
← →
Intell (2003-06-25 09:25) [6]Babay © (25.06.03 05:07)
а можно использовать SHFileOperation он и скопирует и прогресс стандартный виндовозный может показать, может сразу папку скопировать и много другого чего. Рекомендую сам уже давно пользую и не жалею.
такой у меня есть, но нужно прогресс на форме указывать!
INCOGNITO, примерчик не хилый...
← →
delphimun (2003-06-25 10:06) [7]Я программу для разрезания файлов недавно писал, в ней у меня и прогресс бар есть, по ее методу можно и файлы копировать, если надо пиши, я тебе ее исходники скину она при помощи Strem-ов режит(тоесть копирует файл, но по блокам, укажишь размер блока=размеру файла то она, считай копировать будет)
Вообщето я исходник на сайт закинул:
http://delphin.rbcmail.ru/1.zip
Она правда еще чуть недоделана(только обработка исключительных ситуаций хромает, но то что тебе нужно есть
← →
kudatsky (2003-06-25 11:12) [8]Используй CopyFile из RxLib
← →
Intell (2003-06-25 13:11) [9]delphimun, спасибо, посмотрю!
Страницы: 1 вся ветка
Текущий архив: 2003.07.07;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.006 c