FileSystemException (FileSystemException: Cannot open file, path (OS Error: Operation not permitted, errno = 1))

问题描述 投票:0回答:1

我正在使用 Flutter 生成发票并将其保存到我在 MacOS 上的本地驱动器。

Exception Thrown

我尝试了下面的修复程序来授予访问驱动器的权限,但它仍然无法正常工作。

https://www.fluttercampus.com/guide/286/flutter-failed-to-write-to-a-file/

flutter macos dart filesystems
1个回答
0
投票

您遇到的错误与权限有关。在构建 Flutter 桌面应用程序时,您需要指定应用程序所需的权限。在这种情况下,您需要访问本地文件系统的权限。

要在 macOS 上请求访问本地文件系统的权限,您需要更新应用程序的授权。请按照下列步骤操作:

转到您的 Flutter 项目的根目录,然后导航到以下路径:

macos/Runner/DebugProfile.entitlements

打开 DebugProfile.entitlements 文件并在 '<dict>' 中添加以下键:

<key>com.apple.security.files.user-selected.read-write</key>
<true/>

这将授予您的应用程序读取和写入用户选择的文件的权限。

如果你想为release模式申请同样的权限,打开以下文件:

macos/Runner/Release.entitlements

在'<dict>'中添加相同的键值对:

<key>com.apple.security.files.user-selected.read-write</key>
<true/>

保存更改并重建您的应用程序。

现在您的应用程序应该能够读取文件并将文件写入本地文件系统。

但是,请记住,您应该使用文件选择器来允许用户选择他们想要保存文件的位置。这样,您可以确保您的应用程序具有写入所选位置的必要权限。您可以使用 file_picker 包 (https://pub.dev/packages/file_picker) 来实现这一点。

© www.soinside.com 2019 - 2024. All rights reserved.