|
Delphi中实现文件Copy的三种方法 核心提示:1.调用API函数 procedure CopyFile(FromFileName,ToFileName:string); var f1,f2:file; Begin AssignFile(f1,Fro...
1.调用API函数
- procedure CopyFile(FromFileName,ToFileName:string);
- var
- f1,f2:file;
- Begin
- AssignFile(f1,FromFileName); file://指定源文件名
- AssignFile(f2,ToFileName); file://指定目标文件名
- Reset(f1);
- Try
- Rewrite(f2);
- Try
- If Lzcopy(TfileRec(f1).handle,TfileRec(f2).Handle)<0
- Then
- Raise EinoutError.creat(’文件复制错误’)
- Finally
- CloseFile(f2); file://关闭 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;
复制代码
|
|