Delphi下载文件Android与Memory Stream

Alb*_*ssi 0 delphi android indy delphi-xe5

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

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;
Run Code Online (Sandbox Code Playgroud)

我必须显示dolcestilnovo.txtMemo5内部的内容,但我在IdFTP1.Get();方法上有错误.

错误显示"没有可以使用这些参数调用'Get'的重载版本".我能做什么?

我想使用MemoryStream自从我在Android设备上下载它.

Rem*_*eau 5

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

procedure Get(const ASourceFile: string; ADest: TStream; AResume: Boolean = false); overload;
Run Code Online (Sandbox Code Playgroud)

看看为什么你的代码不符合它?请改用:

IdFTP1.Get('dolcestilnovo.txt', Mes, False);
Run Code Online (Sandbox Code Playgroud)

并且不要忘记TMemoryStream.Position在调用之前将其重新设置为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;
Run Code Online (Sandbox Code Playgroud)