
现代浏览器不支持直接通过 `navigator.permissions.query({ name: 'file-system' })` 获取“文件编辑”权限,该权限并不存在于当前标准中;实际应使用 file api 读取用户主动选择的文件,结合 `showsavefilepicker` 等 web apis 实现受控的读写操作。
在 Web 开发中,浏览器从未提供过名为 "file-system" 或 "file-editing" 的标准权限。你无法像请求地理位置或通知权限那样,通过 navigator.permissions.query({ name: 'file-system' }) 预先申请“编辑任意文件”的能力——这出于严格的安全沙箱原则:网页不能未经用户明确、逐次交互就访问本地文件系统。
✅ 正确做法是遵循 “用户手势驱动 + 显式选择” 模式:
- 读取文件:使用 让用户手动选择文件(触发 change 事件),再通过 FileReader 或 Blob.text()/arrayBuffer() 安全读取内容;
- 写入/保存文件:使用 Web File System Access API(Chrome 86+、Edge 86+、Firefox 125+ 支持)调用 showOpenFilePicker()(读)或 showSaveFilePicker()(写),每次操作均需用户点击确认。
以下是完整、可运行的示例代码(兼容现代浏览器):
安全文件处理示例 请选择一个文本文件进行处理










