Androidemulator-访问LocalApplicationData

时间:2019-04-23 09:30:26

标签: android xamarin xamarin.forms android-device-monitor

我正在使用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设备监视器,但数据文件夹为“空”。在其他情况下,我认为我应该以root模式执行

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

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

当我再次运行该应用程序并检入代码是否存在时,它确实存在。

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

2 个答案:

答案 0 :(得分:0)

您可以使用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文件夹中,因此您需要具有相应的根特权才能获取它,因此您需要在adb root命令之前执行adb pull,并且您需要在删除文件之前执行su

答案 1 :(得分:0)

如果我没记错的话,如果您使用自己的方法保存文件,则该文件应该存在,正如您已经使用.Exists方法证明的那样。

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

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

进行访问

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

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