Delphi中拷贝文件

Delphi中拷贝文件

{方法一:用File stream }

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);
  AssignFile(ToF, ToFile);
  Rewrite(ToF, 1);
  repeat
    BlockRead(FromF, Buf, SizeOf(Buf), NumRead);
    BlockWrite(ToF, Buf, NumRead, NumWritten);
  until (NumRead = 0) or (NumWritten <> NumRead);
  CloseFile(FromF);
  CloseFile(ToF);
end;
end

{方法三:使用LZExpand.DLL中的函数LZCopy }

procedure CopyFile(FromFileName, ToFileName: string);
var
  FromFile, ToFile: File;
begin
  AssignFile(FromFile, FromFileName);
  AssignFile(ToFile, ToFileName);
  Reset(FromFile);
  try
    Rewrite(ToFile);
    try
      if LZCopy(TFileRec(FromFile).Handle,TFileRec(ToFile).Handle) < 0 then
         raise EInOutError.Create('Error using LZCopy')
    finally
      CloseFile(ToFile);
    end;
  finally
    CloseFile(FromFile);
  end;
end;

AddThis Social Bookmark Button

相关文档(Relevant Entries)
使MDI窗口有一个背景图象或使它平铺
Delphi参考手册
delphi函数参考手册
Billenium Effects
关于文件操作集锦
DELPHI基础开发技巧
GetFileSize
关于文件流操作想法
Posted on May 10, 2006 3:33 PM | | | Comments (0) | | TrackBacks (0)

引用地址(TRACKBACKS)
 
TrackBack URL for this entry:
http://www.wujianrong.com/mt-tb.cgi/3537

发布评论(ADD YOUR COMMENTS)
 
感谢您参与评论;发表您的意见时请保持文章的相关性;不相关的或是单纯宣传的内容可能会被删掉。您的E-mail只是用来确认您发表的文章,不会出现在网页上。
Please keep your comments relevant to this blog entry. Email addresses are never displayed, but they are required to confirm your comments.

称呼(Name):      记住我的个人信息(Remember)
邮箱(Email):
网址(URL):
评论(Add your comments):

相关内容
广告计划