【发布时间】:2021-10-16 04:50:56
【问题描述】:
这是制作和写入文件的代码,我可以写入临时文件,但由于某种原因,其他任何东西似乎都不起作用。
Directory? dir;
await Permission.storage.request();
if (!await Permission.storage.isGranted) return;
String? dirPath = await FilePicker.platform.getDirectoryPath();
if (dirPath == null) return;
dir = await Directory(dirPath).create(recursive: true);
for (var pdf in selected) {
var bytes = base64Decode(pdf.pdfData.replaceAll('\n', ''));
File savedFile = await File(dir.path +
'/Receipt-' +
DateTime.now().millisecondsSinceEpoch.toString() +
'.pdf')
.create(recursive: true);
savedFile.writeAsBytes(bytes.buffer.asUint8List());
}
这是完整的错误
E/flutter (21592): [ERROR:flutter/lib/ui/ui_dart_state.cc(209)] Unhandled Exception: FileSystemException: Cannot create file, path = '/storage/emulated/0/Receipts/Receipt-1634356377430.pdf' (OS Error: Operation not permitted, errno = 1)
E/flutter (21592): #0 _File.create.<anonymous closure> (dart:io/file_impl.dart:255:9)
E/flutter (21592): #1 _rootRunUnary (dart:async/zone.dart:1436:47)
E/flutter (21592): #2 _CustomZone.runUnary (dart:async/zone.dart:1335:19)
E/flutter (21592): <asynchronous suspension>
E/flutter (21592): #3 PocketLoaded.downloadPDFs (package:receipts/cubit/pocket_state.dart:54:24)
E/flutter (21592): <asynchronous suspension>
我的清单标签内的清单中也有这个
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
如果我做错了,我应该如何写入用户可以在应用程序之外访问的文件?
【问题讨论】:
-
使用 Android 10+ 设备?
-
Cannot create file, path = '/storage/emulated/0/Receipts/Receipt-1634356377430.pdf' (OS Error: Operation not permitted, errno = 1)