颤动:权限被拒绝写文件

时间:2018-06-16 22:28:15

标签: io flutter

我在Flutter中编写文件时遇到问题。我一直收到这个错误:

FileSystemException: Cannot create file, path = '/data/local/tmp/temp.png' (OS Error: Permission denied, errno = 13)

出于某种原因,它只发生在某些设备上。我似乎无法自己复制问题,但人们正在向我报告。

这是基本代码:

final Io.Directory systemTempDir = Io.Directory.systemTemp;
final Io.File file = await new Io.File('${systemTempDir.path}/temp.png').create();
file.writeAsBytes(finalImage);

3 个答案:

答案 0 :(得分:2)

在Android Q中,只需在AndroidManifest文件中添加以下行:

 <application
      android:requestLegacyExternalStorage="true"

答案 1 :(得分:1)

路径可能存在问题,具体取决于所使用的设备。看一下path_provider插件:https://pub.dartlang.org/packages/path_provider

有关如何在flutter.io上阅读和编写Flutter Cookbook中的文件的详细说明:https://flutter.io/cookbook/persistence/reading-writing-files/

答案 2 :(得分:0)

final Io.Directory systemTempDir = Io.Directory.systemTemp;在发布模式下似乎不起作用。

我必须执行以下操作:

Directory tempDir = await getTemporaryDirectory();
final File file = File("${tempDir.path}/$fileName");

getTemporaryDirectory()由path_provider提供。