Delphi中实现文件拷贝的三种方法计算机等级考试
文章作者 100test 发表时间 2009:07:19 07:16:06
来源 100Test.Com百考试题网
编辑特别推荐:
全国计算机等级考试(等考)指定教材
全国计算机等级考试学习视频
全国计算机等级考试网上辅导招生
全国计算机等级考试时间及科目预告
百考试题教育全国计算机等级考试在线测试平台
全国计算机等级考试资料下载
全国计算机等级考试论坛
如何应付二级考试中的公共基础知识
全国计算机等级考试上机考试应试技巧
1.调用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.creat(\ 文件复制错误\ )
Finally
CloseFile(f2). //关闭 f2
End.
Finally
Until length(sLine)<.=0.
End.
End.
2.文件流
procedure copyfile.
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.
3.利用内存块读写buffer实现
Procudure FileCopy(const Fromfile,Tofile:string).
Var
F1,F2:file.
NumRead,Numwritten:word.
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.