android - Delphi - Android - 将文本文件保存到内部存储

标签 android delphi save text-files internal-storage

我对 Android 开发还很陌生。 我想开发一个应用程序,能够将文本文件保存在内部存储中(在应用程序的私有(private)文件夹或类似的地方)。

我有以下代码:

    procedure TfrmMain.Button1Click(Sender: TObject);
    var
      tstrTmp: TStringList;
      sFn: String;
    begin
      tstrTmp := TStringList.Create;
      tstrTmp.Text := 'Test';
      sFn := Format( '%s/Test.txt', [GetHomePath ]);
      sFn := System.IOUtils.TPath.GetDocumentsPath + System.SysUtils.PathDelim + 'Test.txt';
      sFn := TPath.Combine( System.IOUtils.TPath.GetDocumentsPath , 'Test.txt' );
      tstrTmp.SaveToFile( sFn );
      tstrTmp.Free;
      showmessage( sFn );
    end;

当我运行应用程序并单击按钮时,它向我显示:“/data/user/0/com.embarcadero.[MyAppName]/files/Test.txt”。 因此,我假设该文件已物理写入该位置。

但是当我将设备连接到电脑时,我什至找不到这个文件夹。 我还在外部存储上进行了搜索,但找不到此文件夹或文件(Test.txt)。

我确实在内部存储上找到了一个文件夹:/Android/data/com.embarcadero.[MyAppName]/files,但其中没有文件。

所以,我有点卡在这里,因为我假设文件保存在某个地方。 但我找不到它。

我在这里做错了什么吗? 感谢您的反馈。

最诚挚的问候,

Vim 。

最佳答案

所以,解决方案是: 设置应用程序存储权限(设置 - 应用程序 - 我的应用程序 - 权限 - 存储)。

完成此操作后,使用 TPath.GetPublicPath 存储文件会在设备(内部存储)上生成一个文件:/storage/emulated/0/Android/data//files 其中“/storage/emulated/0”=我的设备内部存储的根文件夹。

关于android - Delphi - Android - 将文本文件保存到内部存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64366935/

相关文章:

php - 从 Android Studio 对 PHP $_POST 进行故障排除

delphi - 如何通过 idHTTP 获取(即读取)https 响应。通常是 REST 授权

ios - 保存用户配置文件和持久性

java - 如何在android中使用Drawable绘制笔画?

android - 如何使用免费 API 获取 NSE 和 BSE 的所有股票列表公司名称和代码?

delphi - Tdws单位性能

delphi - 为什么delphi ide会增加windows平台定时器分辨率?

save - vi中wq和x的区别

Python PIL 将图像保存在目录中,如果名称相同则不覆盖

android - 任何人都有 MediaRecorder 使用 ParcelFileDescriptor 和 createPipe()?