如题:
Procedure Tform1.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;

解决方案 »

  1.   

    那得把文件分成好多部分来拷贝,
    即用一个While循环,一次进度条就进一度。
      

  2.   

    Procedure Tform1.FileCopy(Const sourcefilename, targetfilename: String);
    var
      S, T: TFileStream;
      i: integer;
    begin
      S := TFileStream.Create(sourcefilename, fmOpenRead);
      try
        T := TFileStream.Create(targetfilename, fmOpenWrite or fmCreate);
        try
          for i := 0 to S.Size do 
          begin
            T.CopyFrom(S, S.Size) ;
            S.seek(i,0);
          end;
        finally
          T.Free;
        end;
      finally
        S.Free;
      end;
    end;加入了 S.seek(i,0); 后,系统提示 Stream read error ,如何解决呀???
      

  3.   

    for i := 1 to S.Size do 
          begin
            T.CopyFrom(S, 1) ;
            S.seek(i,0);
          end;
    还是自己给解决了。