我在Indy网站上下了一个关于TIdFTP的demo,其中有这么一句:FTP.Get(FileName, SaveFile.FileName, true, true);总是报错'destination file already exists',明明目录下没有那个文件。如是我看看get实现的源码procedure TIdFTP.Get(const ASourceFile: string; ADest: TIdStream; AResume: Boolean = False);
begin
  //for SSL FXP, we have to do it here because InternalGet is used by the LIST command
  //where SSCN is ignored.
  ClearSSCN;
  AResume := AResume and CanResume;
  ADest.Position := 0;
  InternalGet('RETR ' + ASourceFile, ADest, AResume);
end;procedure TIdFTP.Get(const ASourceFile, ADestFile: string; const ACanOverwrite: boolean = False;
  AResume: Boolean = false);
var
  LDestStream: TIdStream;
begin    AResume := AResume and CanResume;
    if ACanOverwrite and (not AResume) then begin
      Sys.DeleteFile(ADestFile);
      LDestStream := TFileCreateStream.Create(ADestFile);
    end    else begin
      if (not ACanOverwrite) and AResume then
      begin
        LDestStream := TAppendFileStream.Create(ADestFile);
      end
      else
      begin
        raise EIdFTPFileAlreadyExists.Create(RSDestinationFileAlreadyExists);
      end;
    end;  try
    Get(ASourceFile, LDestStream, AResume);
  finally
    Sys.FreeAndNil(LDestStream);
  end;
end;我看了raise EIdFTPFileAlreadyExists.Create(RSDestinationFileAlreadyExists);之前的代码发现get方法的后两个boolean参数不能相同啊,即不能同时为true或false,不能既覆盖又重传(可以接受),不能不覆盖不重传,但默认的两个参数的值是两个false,这是怎么搞的嘛?还想问一个问题:TIdFTP如何支持sftp呢?我看它有这个属性FUsingSFTP : Boolean;但是它是只读属性,没办法啊。