我对 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/