Delphi中实现文件拷贝的三种方法

    技术2022-05-11  55

    1.调用API函数procedure CopyFile(FromFileName,ToFileName:string);varf1,f2:file;BeginAssignFile(f1,FromFileName); //指定源文件名AssignFile(f2,ToFileName); //指定目标文件名Reset(f1);TryRewrite(f2);TryIf Lzcopy(TfileRec(f1).handle,TfileRec(f2).Handle)<0ThenRaise EinoutError.creat('文件复制错误')FinallyCloseFile(f2); //关闭 f2End;FinallyUntil length(sLine)<=0;End;End;

    2.文件流procedure copyfile;var f1,f2: tfilestream ;beginf1:=Tfilestream.Create(sourcefilename,fmopenread);tryf2:=Tfilestream.Create(targetfilename,fmopenwrite or fmcreate);tryf2.CopyFrom(f1,f1.size);finallyf2.Free;end;finallyf1.Free;end;end;

    3.利用内存块读写buffer实现Procudure FileCopy(const Fromfile,Tofile:string);VarF1,F2:file;NumRead,Numwritten:word;Buf:array [1..2048] of char;BeginAssignFile(F1,Fromfile);Reset(F1,1);AssignFile(F2,Tofile);Rewrite(F2,1);RepeatBlockRead(F1,buf,sizeof(buf),NumRead);BlockWrite(F2,buf,Numread,NumWritten);Until (NumRead=0) or (NumWritten<>NumRead);CloseFile(F1);CloseFile(F2);End;

     

    最新回复(0)