0

我正在尝试以这种方式从服务器下载文件:

var MeS:TMemoryStream;
begin
 Mes:=TMemoryStream.Create;
 IdFTP1.Connect;
 Mes.Position:=0;
  try
   IdFTP1.Get(Mes, 'dolcestilnovo.txt', True, False);
  finally
   MeS.Free;
   IdFTP1.Disconnect;
  end;
 Memo5.Lines.LoadFromStream(Mes);
end;

我必须显示dolcestilnovo.txt那个Memo5里面的内容,但是我的方法有错误IdFTP1.Get();

错误提示“没有可以使用这些参数调用的 'Get' 的重载版本”。我能做些什么?

我想使用它,MemoryStream因为我在安卓设备上下载它。

4

1 回答 1

5

查看TStream版本的签名TIdFTP.Get()

procedure Get(const ASourceFile: string; ADest: TStream; AResume: Boolean = false); overload;

看看为什么你的代码不匹配?改用这个:

IdFTP1.Get('dolcestilnovo.txt', Mes, False);

并且不要忘记TMemoryStream.Position在调用之前再次将 back 重置为 0,Memo5.Lines.LoadFromStream(Mes)否则它将不会加载任何内容。

尝试这个:

var
  MeS: TMemoryStream;
begin
  Mes := TMemoryStream.Create;
  IdFTP1.Connect;
  try
    IdFTP1.Get('dolcestilnovo.txt', Mes, False);
  finally
    IdFTP1.Disconnect;
  end;
  Mes.Position := 0;
  Memo5.Lines.LoadFromStream(Mes);
end;
于 2013-09-25T19:57:50.313 回答