Bueno en la ayuda de delphi viene este ejemplo
Código Delphi
[-]
var
FromF, ToF: file;
NumRead, NumWritten: Integer;
Buf: array[1..2048] of Char;
begin
if OpenDialog1.Execute then
begin
AssignFile(FromF, OpenDialog1.FileName);
Reset(FromF, 1);
if SaveDialog1.Execute then
begin
AssignFile(ToF, SaveDialog1.FileName);
Rewrite(ToF, 1);
Canvas.TextOut(10, 10, 'Copying ' + IntToStr(FileSize(FromF))
+ ' bytes...');
repeat
BlockRead(FromF, Buf, SizeOf(Buf), NumRead);
BlockWrite(ToF, Buf, NumRead, NumWritten);
Application.ProcessMessages; until (NumRead = 0) or (NumWritten <> NumRead);
CloseFile(FromF);
CloseFile(ToF);
end;
end;
end;
Lo que no se es como se comportaria en tiempo de copiado, es cosa de que lo pruebes.
Salud OS