【发布时间】:2022-11-16 10:02:50
【问题描述】:
我想创建一个包含一些文本的文本文件,并在用户单击“下载”按钮时下载它。如果用户再次点击同一个下载按钮,它应该创建一个新的文本文件,而不是重写或更新现有文件,因为文本会定期更改。任何建议,将不胜感激。
/// Snippet when user clicks on download second-time
final permission = Permission.storage;
final status = await permission.status;
debugPrint('>>>Status $status'); /// here it is coming as PermissionStatus.granted
if (status != PermissionStatus.granted) {
await permission.request();
if(await permission.status.isGranted){
directory = Directory('/storage/emulated/0/Download');
///perform other stuff to download file
} else {
await permission.request();
}
debugPrint('>>> ${await permission.status}');
}
directory = Directory('/storage/emulated/0/Download');
我确保设置了存储权限。收到此错误
FileSystemException:无法打开文件,路径 = '/storage/emulated/0/Download/codes.txt'(操作系统错误:权限被拒绝,errno = 13)
【问题讨论】:
-
这是解决方案,请检查它stackoverflow.com/a/59507164/10804348你需要每次设置不同的文件名,这样它就不能覆盖到以前的文件
-
谢谢@VishalParmar,我已经尝试过了,但它没有按预期工作。
-
好的,但是你能告诉我你在使用该代码时遇到的问题是什么吗?
-
当我调用 ${path}.writeAsString('text') 时,有时即使设置了各自的权限也不会下载。此外,如果用户第二次下载,则更新现有文件但不创建新文件。 @VishalParmar
-
你能在这里展示你到目前为止所做的代码吗