gpt4 book ai didi

ios - Flutter - 删除目录失败(操作系统错误 : Operation not permitted, errno = 1)

转载 作者:行者123 更新时间:2023-12-05 01:54:36 40 4
gpt4 key购买 nike

我有一个 flutter 应用程序,它将 pdf 文件保存在一个临时目录中,然后用户可以按一个按钮来删除这些文件,在 Android 中一切正常,但在 iOS 中我收到此错误:

Unhandled Exception: FileSystemException: Deletion failed, path ='/var/mobile/Containers/Data/Application/75048CC8-24E7-4BA3-B748-5603D4F74F60/Library/Caches'(OS Error: Operation not permitted, errno = 1)

奇怪的是,如果您刷新应用程序,您会看到文件已被删除,所以实际上它可以工作,但会出错并阻止应用程序。

我的删除代码是这样的:

CupertinoDialogAction(
child: Text("Ok"),
onPressed: () async {
Directory dir = await getTemporaryDirectory();
dir.deleteSync(recursive: true);
dir.create();
Navigator.pop(context);
openFinishDialog();
}
),

此外,此错误仅显示在物理设备上,而不显示在模拟器上。

我使用了 dart 包 path_provider 2.0.8

最佳答案

好吧,我通过在 TemporaryDirectory 中创建一个目录并删除它而不是 TemporaryDirectory 解决了这个问题,下面是创建代码:

var tempDir = await getTemporaryDirectory();
var tempDirPath = tempDir.path;
final myAppPath = '$tempDirPath/my_app';
final res = await Directory(myAppPath).create(recursive: true);

下面是删除代码:

Directory dir = await getTemporaryDirectory();
Directory myDir = Directory(dir.path + "/my_app");
myDir.deleteSync(recursive: true);
myDir.create();

我希望这对其他人有用,如果有人有更好的方法来解决这个问题,请回答!

关于ios - Flutter - 删除目录失败(操作系统错误 : Operation not permitted, errno = 1),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70594198/

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