Androidemulator - 访问 LocalApplicationData 中的文件

Bri*_*der 0 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);
Run Code Online (Sandbox Code Playgroud)

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

/data/user/0/<applicationame>/files/.local/share/appsettiings.txt
Run Code Online (Sandbox Code Playgroud)

我想看看文件是否实际保存以及内容是什么。我打开 Android 设备监视器,但数据文件夹为“空”。从其他一些 SO 案例中,我认为我应该通过执行来进入 root 模式

C:\Program Files (x86)\Android\android-sdk\platform-tools>adb root
Run Code Online (Sandbox Code Playgroud)

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

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

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

jac*_*314 6

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

adb root
adb pull /data/user/0/<applicationame>/files/.local/share/appsettiings.txt [LOCAL_FOLDER]
Run Code Online (Sandbox Code Playgroud)

然后你可以使用adb shellthenrm -f来删除它,如下所示:

adb shell
su
rm -f /data/user/0/<applicationame>/files/.local/share/appsettiings.txt 
Run Code Online (Sandbox Code Playgroud)

由于您请求的文件位于 /data 文件夹内,因此您需要具有相应的 root 权限才能获取它,因此您需要在命令adb root之前执行此操作adb pull,并且需要su在删除文件之前执行此操作。