如何在Tauri2.0项目中正确配置对话框插件文件选择器的目录访问权限
Tauri 2.0 目录权限限制未生效的排查与解决
问题定位
你配置的dialog:allow-open和fs:allow-read-text-file权限规则未正确限制目录访问,但dialog:deny-open能正常生效,说明权限系统本身运行正常,问题出在规则写法或权限匹配逻辑上。
修正方案
1. 调整路径匹配规则
Tauri 2.0的路径匹配采用glob模式,原配置中的*仅匹配当前目录下的文件,无法覆盖子目录及深层文件,需修改为**/*:
{ "$schema": "../gen/schemas/desktop-schema.json", "identifier": "default", "description": "enables the default permissions", "windows": [ "main" ], "permissions": [ "core:default", { "identifier": "dialog:allow-open", "allow": [{ "path": "C:/Users/Administrator/Downloads/**/*" }] }, { "identifier": "fs:allow-read-text-file", "allow": [{ "path": "C:/Users/Administrator/Downloads/**/*" }] } ] }
**/*表示匹配目标目录下所有层级的文件和子目录,能实现完整的目录范围限制。
2. 补充目录访问权限
如果需要限制目录本身的读取操作(而非仅文件),需额外添加fs:allow-read-dir权限:
{ "identifier": "fs:allow-read-dir", "allow": [{ "path": "C:/Users/Administrator/Downloads/**/*" }] }
3. 验证生效前提
- 修改配置后必须重新构建并运行应用:Tauri权限配置不支持热重载,需重新编译才能生效。
- 确认代码使用Tauri官方API:读取文件时必须调用
fs.readTextFile(),不能使用浏览器原生文件读取API(原生API不受Tauri权限规则约束)。
4. 逐步验证规则有效性
先通过dialog:deny-open确认权限系统正常,再逐步切换为allow规则,逐一验证目录限制是否生效,排除规则冲突。
内容的提问来源于stack exchange,提问作者fuyu2022
相关产品推荐
相关产品推荐

