delphi中如何实现文件的拷贝?

{文件流方式.}   
Procedure FileCopy( Const sourcefilename, targetfilename: String );   
Var   
S, T: TFileStream;   
Begin   
S := TFileStream.Create( sourcefilename, fmOpenRead );   

try   
T := TFileStream.Create( targetfilename,   
fmOpenWrite or fmCreate );   
try   
T.CopyFrom(S, S.Size ) ;   
finally   
T.Free;   
end;   
finally   
S.Free;   
end;   
End;   

{内存块读/写.}   
procedure FileCopy(const FromFile, ToFile: string);   
var   
FromF, ToF: file;   
NumRead, NumWritten: Word;   
Buf: array[1..2048] of Char;   
begin   
AssignFile(FromF, FromFile);   
Reset(FromF, 1);      { Record size = 1 }   

AssignFile(ToF, ToFile);   { Open output file }   
Rewrite(ToF, 1);      { Record size = 1 }   
repeat   
BlockRead(FromF, Buf, SizeOf(Buf), NumRead);   
BlockWrite(ToF, Buf, NumRead, NumWritten);   
until (NumRead = 0) or (NumWritten <> NumRead);   
CloseFile(FromF);   
CloseFile(ToF);   
end;   

{用 LZCopy,   LZExpand .}   
procedure CopyFile(FromFileName, ToFileName: string);   
var   
FromFile, ToFile: File;   
begin   
AssignFile(FromFile, FromFileName); { Assign FromFile to FromFileName }   

AssignFile(ToFile, ToFileName); { Assign ToFile to ToFileName }   
Reset(FromFile); { Open file for input }   
try   
Rewrite(ToFile); { Create file for output }   
try   
{ copy the file an if a negative value is returned }   
{ raise an exception }   
if LZCopy(TFileRec(FromFile).Handle, TFileRec(ToFile).Handle) < 0 
then 
raise EInOutError.Create('Error using LZCopy') 
finally 
CloseFile(ToFile); { Close ToFile } 

end; 
finally 
CloseFile(FromFile); { Close FromFile } 
end; 
end; 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值