我测试了以下Flutter应用示例: https://github.com/tensor-programming/flutter_read_write_file_and_path
但是,使用文件管理器(Solid Explorer)浏览设备时,找不到此示例创建的文件“ db.txt”。
final path = await localPath;
我检查了许多文件夹,包括:
此文件在哪里? 我应该扎根我的设备来查找/查看它吗?
要在“ path”变量之后添加什么字符串以到达“下载”文件夹? 或者,如何获取“下载”文件夹的绝对路径?
设备:GALAXY S8 + SM-G955F。 Android 8.0。不扎根。 Flutter beta v0.5.1。 Dart 2.0.0-dev.58.0。 Windows 10。 谢谢和问候
答案 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
注释)会提供任何有用的信息,如下所示:
对于iOS,它是NSDocumentDirectory
。
在您要的Android上,目录可以找到为/data/data/<package_name>
,而不是找到的///
。
我没有查看项目的代码,这意味着您的文件可能没有存储在/data/<package_name>
中。
答案 3 :(得分:0)
使用:getExternalStorageDirectory();并查找存储目录。 /存储