我在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);
答案 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提供。