【问题标题】:Cannot find the path provided by getApplicationDocumentsDirectory()找不到 getApplicationDocumentsDirectory() 提供的路径
【发布时间】:2018-12-27 14:46:44
【问题描述】:

我测试了这个颤振应用示例: https://github.com/tensor-programming/flutter_read_write_file_and_path

但是,使用文件管理器(Solid Explorer)浏览我的设备时,我找不到此示例创建的文件“db.txt”。

final path = await localPath;

我检查了许多文件夹,包括:

  • /storage/emulated/0 (= sdcard)
  • sdcard/Android/数据
  • SD卡/数据

这个文件在哪里? 我应该根我的设备来查找/查看它吗?

在“路径”变量之后添加什么字符串以到达下载文件夹? 或者,如何获取下载文件夹的绝对路径?

设备:影驰 S8+ SM-G955F。安卓8.0。未扎根。 颤振测试版 v0.5.1。飞镖 2.0.0-dev.58.0。视窗 10。 谢谢和问候

【问题讨论】:

    标签: dart flutter


    【解决方案1】:

    如果您使用的是设备上安装的文件资源管理器应用程序,那么我认为您无法访问为其他应用程序存储在其应用程序文档目录中的文件。这是将应用相互隔离的安全模型的一部分。

    如果您使用 Android Studio 构建并部署应用到您的设备,那么您可以进入 查看 > 工具窗口 > 设备文件资源管理器 将您的设备通过 USB 连接到您的 PC 以访问这些文件。

    我发现我自己的 Flutter 应用程序的相关路径是 /data/usr/0/…/app_flutter 对于您提供的示例,这将是 /data/usr/0/com.example.localstorageexample/app_flutter

    (如果您没有使用 Android Studio 部署您引用的演示,您是如何在您的设备上获得它的?)

    【讨论】:

    【解决方案2】:

    你可以这样做

    final Directory extDir = await getExternalStorageDirectory();
    final String dirPath = extDir.path.toString().substring(0,20);
    await Directory(dirPath).create(recursive: true);
    final String filePath = '$dirPath/';
    

    您可能需要根据您的 Android 平台编辑第二行的参数。这将创建您的文件,并使其可供您的用户访问。

    【讨论】:

    • 这在模拟器上不起作用,因为 getExternalStorageDirectory 返回 /sdcard/Android/data/com.myapp/files,而不是 /storage/emulated/0/Android/data...
    【解决方案3】:

    使用:getExternalStorageDirectory();而是找到存储目录。 /存储

    【讨论】:

      【解决方案4】:

      你可以看看source file of the code
      在这种情况下,只有 文档/// 标记为 cmets)提供了任何有用的信息,如下所示:

      我没有查看项目的代码,这意味着您的文件可能没有存储在getApplicationDocumentsDirectory()中。

      【讨论】:

      • 当我单击 /data 文件夹时,我收到消息:“访问被拒绝”。这是否意味着我必须 root 设备才能访问此文件夹?
      • 当我单击 /data 文件夹时,我收到消息:“访问被拒绝”。这是否意味着我必须根我的设备才能访问此文件夹?我的下载文件夹位于:/storage/emulated/0/Download。所以要从/data/data/<package_name> 跳转到下载,我必须添加这个字符串:../../../storage/emulated/0/Download。不是吗?
      • 打开命令行。输入adb shell 进入... adb shell。输入run-as <package_name> 以进入具有 访问权限的进一步 shell(我们需要更深入),位于上述双数据目录中。
      猜你喜欢
      • 2014-09-14
      • 1970-01-01
      • 1970-01-01
      • 2013-08-10
      • 1970-01-01
      • 2019-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多