procedure TForm1.Button1Click(Sender: TObject);
var
FromF,ToF: file;
NumRead,NumWritten: Integer;
Buffer: array[1..2048] of Byte;
begin
AssignFile(FromF, 'c:\temp\test1.dat'); //假定有这个文件
Reset(FromF, 1);
AssignFile(ToF, 'c:\temp\test2.dat');
Rewrite(ToF, 1);
repeat
BlockRead(FromF, Buffer, SizeOf(Buffer), NumRead);
BlockWrite(ToF, Buffer, NumRead, NumWritten);
until (NumRead = 0) or (NumWritten <> NumRead);
{ NumRead=0 表示读完了; NumWritten <> NumRead 表示磁盘空间不够了 }
CloseFile(FromF);
CloseFile(ToF);
end;