0

我正在使用 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 设备监视器,但数据文件夹是“空的”。从其他一些 SO 案例中,我认为我应该通过执行

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

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

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

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

4

2 回答 2

3

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

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

然后您可以使用adb shellthenrm -f将其删除,如下所示:

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

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

于 2019-04-23T09:38:45.317 回答
0

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

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

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

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

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

于 2019-04-23T09:47:47.217 回答