Android 模拟器 - 访问 LocalApplicationData 中的文件

Androidemulator - Access files in LocalApplicationData

我正在使用 xamarin 表单开发 Android 应用程序。我可以通过

保存文件
    var fileName = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), $"appsettiings.txt");
    var data = JsonConvert.SerializeObject(this);
    File.WriteAllText(fileName, data);

当我调试时,我可以看到文件应该存储在

/data/user/0/<applicationame>/files/.local/share/appsettiings.txt

我想看看文件是否真的保存了,内容是什么。我打开了 Android 设备监视器,但数据文件夹是 'empty'。从其他一些 SO 案例中,我认为我应该通过执行

C:\Program Files (x86)\Android\android-sdk\platform-tools>adb root

现在 data 文件夹包含数据,我可以向下钻取到 files 文件夹,但那个文件夹似乎是空的。

当我再次 运行 应用程序并检查文件是否存在时,它确实存在。

关于如何从任何工具访问该文件的任何进一步建议。我想再次删除该文件和 运行 应用程序。

您可以使用adb pull将文件复制到本地机器并查看它的内容,如下所示:

adb root
adb pull /data/user/0/<applicationame>/files/.local/share/appsettiings.txt [LOCAL_FOLDER]

然后你可以使用 adb shell 然后 rm -f 删除它,像这样:

adb shell
su
rm -f /data/user/0/<applicationame>/files/.local/share/appsettiings.txt 

由于你请求的文件在/data文件夹下,需要相应的root权限才能获取,所以你需要在adb pull命令前做adb root,你在删除文件之前需要做 su

如果我没记错的话,如果你用你的方法保存一个文件,它应该存在,因为你已经用 .Exists 方法证明了。

我不太确定,你只是想从文件中读取内容吗?或者您想从应用程序外部访问它?

如果您只想阅读内容,可以使用

访问它

string content= File.ReadAllText(your file path);

并在下一行设置断点 (F9)。