gpt4 book ai didi

flutter - 如何解决flutter中的 "OS Error: File exists, errno = 17"?

转载 作者:行者123 更新时间:2023-12-05 01:59:53 26 4
gpt4 key购买 nike

我正在尝试下载文件并将其保存在 Downlaod 目录中,但每次出现此错误:

I/flutter (21400): FileSystemException: Cannot create file, path = '/storage/emulated/0/Download/contratto.jpg' (OS Error: File exists, errno = 17)

但是如果我在我的存储中搜索这个文件我找不到它,我不明白。

在 list 中我拥有所有权限:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

我正在使用 ext_storage 包来查找路径,但即使使用 path_provider 我也遇到了同样的错误。这是我的代码:

static Future download(String url, String fileName, String extension) async {
_checkPermission();
String _localPath = await ExtStorage.getExternalStoragePublicDirectory(
ExtStorage.DIRECTORY_DOWNLOADS);
Dio dio = Dio();
await dio.download(
url,
_localPath + "/" + fileName + "." + extension,
);
}

我正在使用 Flutter 2.0.6。有什么想法吗?

编辑:下载仅在我第一次使用特定名称保存文件时有效,如果我删除它并尝试再次下载它,我会收到此错误。我也试过重新安装应用程序,但我仍然收到错误

最佳答案

显然 Android 删除文件的方式似乎有问题:第一次有效,但下一次比较错误,即使我手动删除文件也是如此。

我的解决方案:将随机字符串附加到文件名。我知道它不是那么优雅,但它确实有效。

 String filePath =
_localPath + "/" + fileName + Uuid().v4() + "." + extension;

关于flutter - 如何解决flutter中的 "OS Error: File exists, errno = 17"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67583812/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com