如何解决Delphi-Android-将文本文件保存到内部存储
我刚接触Android开发。 我想开发一个应用程序,它能够将文本文件保存在内部存储中(在应用程序的专用文件夹中)。
我有以下代码:
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”。 因此,我认为该文件已物理写入该位置。
但是当我将设备连接到PC时,我什至找不到该文件夹。 我也搜索了外部存储,但找不到该文件夹或文件(Test.txt)。
我确实在内部存储中找到了一个文件夹:/Android/data/com.embarcadero。[MyAppName]/files,但其中没有文件。
所以,我有点卡在这里,因为我假设文件保存在某个地方。 但是我找不到它。
我在这里做错什么了吗? 感谢您的反馈。
最好的问候
威姆。
解决方法
因此,解决方案是: 设置用于存储的应用程序权限(设置-应用程序-MyApp-权限-存储空间)。
完成此操作后,使用TPath.GetPublicPath将文件存储在设备(内部存储)上的文件中:/ storage / emulated / 0 / Android / data // files 其中'/ storage / emulated / 0'=设备内部存储的根文件夹。
,如果您担心设备之间的内部根路径是否发生变化,您可以试试这个
AppPath := ReplaceStr(System.IOUtils.TPath.GetSharedDownloadsPath,'/Download','');
会给你你想要的东西,所以你不必担心它是“/storage/emulated/0”还是别的什么。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。