1

我必须在我的 android 项目上上传一个文本文件,所以我使用了IdFTP. 这是代码:

Button2.Enabled:=False;
Label5.Text:='Uploading...';

Memo1.Lines.Add(Edit1.Text+':'+ComboBox1.Items.Text);
Memo1.SaveToFile('filehost.txt');

try
 IdFTP1.Connect;
  // I set the host, password and username
 IdFTP1.Put('filehost.txt');
finally
 IdFTP1.Disconnect;

我遇到了问题,因为当我在三星(Android 2.3)上运行该应用程序时,出现错误提示Cannot create file "/filehost.txt". Not a directory

我必须将该 Memo1 的内容保存在我的 Android 设备中,然后使用 IdFTP 上传。我怎样才能避免这个错误?

4

1 回答 1

3

您无法写入根文件夹。用于TPath查找可写文件夹,例如 fromTPath.GetTempPath()TPath.GetDocumentsPath().

或者,根本不使用文件。 TIdFTP.Put()有一个重载版本,它上传 aTStream而不是文件,例如:

var
  MS: TMemoryStream;
begin
  MS := TMemoryStream.Create;
  try
    Memo1.Lines.SaveToStream(MS);
    MS.Position := 0;
    ...
    IdFTP1.Put(MS, 'filehost.txt');
    ...
  finally
    MS.Free;
  end;
end;
于 2013-09-24T16:25:02.473 回答