找不到getApplicationDocumentsDirectory()提供的路径

时间:2018-07-19 12:44:14

标签: dart flutter

我测试了以下Flutter应用示例: 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 / data
  • sdcard /数据

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

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

设备:GALAXY S8 + SM-G955F。 Android 8.0。不扎根。 Flutter beta v0.5.1。 Dart 2.0.0-dev.58.0。 Windows 10。 谢谢和问候

4 个答案:

答案 0 :(得分:2)

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

如果您使用Android Studio来构建应用并将其部署到设备上,则可以访问查看> 工具Windows > 设备文件资源管理器< / strong>,并且您的设备通过USB连接到PC即可访问这些文件。

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

(如果您尚未使用Android Studio部署您引用的演示,那么如何在设备上获取它?)

答案 1 :(得分: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平台在第二行中编辑参数。这将创建您的文件,并使用户可以访问它。

答案 2 :(得分:1)

您只需看一下source file of the code
在这种情况下,只有文档(带有标记的S - ai注释)会提供任何有用的信息,如下所示:

我没有查看项目的代码,这意味着您的文件可能没有存储在/data/<package_name>中。

答案 3 :(得分:0)

使用:getExternalStorageDirectory();并查找存储目录。 /存储