Ò»¡¢Ê¹ÓÃÎļþÁ÷µÄ·½·¨½øÐп½±´£¬µ±È»¡£Í¬ÑùµÄµÀÀí£¬ÄãÒ²¿ÉÒÔʹÓÃÄÚ´æÁ÷µÈ·½·¨½øÐÐÎļþµÄ¿½±´£¬ÔÀíÊÇÒ»ÑùµÄ¡£
procedure copyfile(sourcefilename,targetfilename : String);
var f1, f2: tfilestream;
begin
f1 := tfilestream.Create(sourcefilename, fmopenread);
try
f2 := tfilestream.Create(targetfilename, fmopenwrite or fmcreate);
try
f2.Copyfrom(f1, f1.Size);
finally
f2.Free;
end;
finally
f1.Free;
end;
end;
¶þ¡¢Ê¹ÓÃBLOCKREADºÍBLOACKWRITEµÄ·½·¨½øÐÐÎļþµÄ¿½±´¡£
Procedure FileCopy(const fromfile, Tofile: string);
var
F1, F2: file;
NumRead, Numwritten: integer;
Buf: array[1..2048] of char;
begin
AssignFile(F1, fromfile);
reset(F1, 1);
AssignFile(F2, Tofile);
Rewrite(F2, 1);
repeat
BlockRead(F1, Buf, sizeof(Buf), NumRead);
BlockWrite(F2, Buf, NumRead, Numwritten);
until (NumRead = 0) or (Numwritten <> NumRead);
closefile(F1);
closefile(F2);
end;
Èý¡¢Ê¹ÓÃAPIÎļþ½øÐÐÎļþµÄ¸´ÖÆ
procedure CopyFile(fromFileName, ToFileName: string);
var
f1, f2: file;
begin
AssignFile(f1, fromFileName);
AssignFile(f2, ToFileName);
reset(f1);
try
Rewrite(f2);
try
if Lzcopy(TfileRec(f1).handle, TfileRec(f2).handle) < 0
then
raise EinoutError.Create('Îļþ¸´ÖÆ´íÎó');
finally
closefile(f1);
end;
finally
closefile(f2);
end;
end;
ËÄ¡¢Windows APIº¯Êý ʵÏÖÎļþµÄ¿½±´
function CopyFile(lpExistingFileName, lpNewFileName: PChar; bFailIfExists: BOOL): BOOL; stdcall;
²ÎÊý˵Ã÷£º
lpExistingFileName £º ÔÎļþÃû³Æ£»
lpNewFileName £º Ä¿±êÎļþÃû³Æ
bFailIfExists &nbs