我一直在关注-如何从https://docs.flutter.io/flutter/dart-io/Directory-class.html创建目录
new Directory('dir/subdir').create(recursive: true)
// The created directory is returned as a Future.
.then((Directory directory) {
print(directory.path);
});
这是我得到的错误:
FileSystemException:创建失败,路径='dir'(操作系统错误:只读文件系统,errno = 30)
我已启用Storage(WRITE_EXTERNAL_STORAGE)
权限。
(Android设备)
我想念什么?
答案 0 :(得分:3)
知道了(使用path_provider插件获取正确的路径)
Directory appDocDirectory = await getApplicationDocumentsDirectory();
new Directory(appDocDirectory.path+'/'+'dir').create(recursive: true)
// The created directory is returned as a Future.
.then((Directory directory) {
print('Path of New Dir: '+directory.path);
});
答案 1 :(得分:0)
如果您正在Android Oreo上进行测试,并且想在外部存储中写入文件,则需要询问WRITE_EXTERNAL_STORAGE
根据“ https://developer.android.com/about/versions/oreo/android-8.0-changes.html#rmp”
如果该应用定位到Android 8.0(API级别26),则系统仅授予 当时是READ_EXTERNAL_STORAGE;但是,如果应用程序稍后请求 WRITE_EXTERNAL_STORAGE,系统立即授予该特权 而不提示用户。
Permission Plugin仅向Permission.requestPermissions([PermissionName.Storage])
申请READ_EXTERNAL_STORAGE权限;
所以您需要索取WRITE_EXTERNAL_STORAGE。
您可以使用我的存储库在pubspec.yaml中询问WRITE_EXTERNAL_STORAGE:
permission:
git:
url: https://github.com/kamlesh9070/permission
答案 2 :(得分:0)
如果您授予了WRITE_EXTERNAL_STORAGE
权限,但仍然无法创建目录,
您可以尝试从设备上手动卸载 Flutter应用,
然后重新运行。
注意:确保在安装后,从应用设置中允许存储权限。
经过数小时的努力,它对我有用(我不知道为什么该解决方案有效)