我试图以这种方式从服务器下载文件:
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;
我必须在Memo5中显示dolcestilnovo.txt
的内容,但我在IdFTP1.Get();
方法上有错误。
错误显示“没有可以使用这些参数调用'Get'的重载版本”。我能做什么?
我想使用MemoryStream
因为我在Android设备上下载它。
答案 0 :(得分:5)
查看TStream
TIdFTP.Get()
版本的签名:
procedure Get(const ASourceFile: string; ADest: TStream; AResume: Boolean = false); overload;
了解您的代码与之匹配的原因?请改用:
IdFTP1.Get('dolcestilnovo.txt', Mes, False);
不要忘记在调用TMemoryStream.Position
之前再次将Memo5.Lines.LoadFromStream(Mes)
重置为0,否则它将不会加载任何内容。
试试这个:
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;