
Hope this helps:-

procedure CopyFile(varFrom: String; varTo: String; varDelete: Boolean);
{varFrom and varTo can contain path names}
begin
  AssignFile(varFromFile, varFrom);
  AssignFile(varToFile, varTo);
  Reset(varFromFile);
  try
    Rewrite(varToFile);
    try
      if LZCopy(TFileRec(varFromFile).Handle, TFileRec(varToFile).Handle)
          < 0 then
        begin
          varDesc := 'Failed to copy ' + varFrom + ' to ' + varTo;
          varErrors := True;
          Exit;
        end;
    finally
      CloseFile(varToFile);
    end;
  finally
    CloseFile(varFromFile);
  end;
  if varDelete then
    DeleteFile(varFrom);
end;


