[Back to DELPHI SWAG index] [Back to Main SWAG index] [Original]

    I wrote the following function to copy a file and keep the
    attributes/date-time the same on the copied file.  Hope this helps!

    function FileCopy(source,dest: String): Boolean;
    var
      fSrc,fDst,len: Integer;
      size: Longint;
      buffer: packed array [0..2047] of Byte;
    begin
      Result := False; { Assume that it WONT work }
      if source <> dest then begin
        fSrc := FileOpen(source,fmOpenRead);
        if fSrc >= 0 then begin
          size := FileSeek(fSrc,0,2);
          FileSeek(fSrc,0,0);
          fDst := FileCreate(dest);
          if fDst >= 0 then begin
            while size > 0 do begin
              len := FileRead(fSrc,buffer,sizeof(buffer));
              FileWrite(fDst,buffer,len);
              size := size - len;
            end;
            FileSetDate(fDst,FileGetDate(fSrc));
            FileClose(fDst);
            FileSetAttr(dest,FileGetAttr(source));
            Result := True;
          end;
          FileClose(fSrc);
        end;
      end;
    end;

[Back to DELPHI SWAG index] [Back to Main SWAG index] [Original]