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;

Samsung (Android 2.3) でアプリを実行すると、次のようなエラーが表示されるため、問題が発生していますCannot create file "/filehost.txt". Not a directory

その Memo1 のコンテンツを Android デバイスに保存し、IdFTP を使用してアップロードする必要があります。そのエラーを回避するにはどうすればよいですか?

4

1 に答える 1

3

ルート フォルダーに書き込むことはできません。fromやTPathなど、書き込み可能なフォルダーを検索するために使用します。TPath.GetTempPath()TPath.GetDocumentsPath()

または、ファイルをまったく使用しないでください。 ファイルの代わりにTIdFTP.Put()アップロードするオーバーロードされたバージョンがあります。例:TStream

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 に答える