---

title: "File System Access API 实战:读写权限与持久化策略"

keywords:

  • File System Access
  • showOpenFilePicker
  • showSaveFilePicker
  • FileSystemFileHandle
  • 权限持久化

description: "介绍文件选择与保存、读写流与权限模型、持久化与回退策略,并给出可运行示例与安全注意事项。"

categories:

  • 文章资讯
  • 技术教程

---

概述

File System Access API 提供更直接的本地文件读写能力,适合编辑器与导入导出场景。需在安全上下文(HTTPS)下启用,并处理权限与用户交互。

用法与示例

打开与读取

const [handle] = await window.showOpenFilePicker({
  types: [{ description: 'Text', accept: { 'text/plain': ['.txt'] } }]
})
const file = await handle.getFile()
const text = await file.text()

保存与写入

const handle = await window.showSaveFilePicker({
  types: [{ description: 'Text', accept: { 'text/plain': ['.txt'] } }]
})
const writable = await handle.createWritable()
await writable.write('Hello World')
await writable.close()

工程建议

  • 权限与 UX:在读写前提示用户操作意图;处理取消与异常,避免数据丢失。
  • 持久化:结合 navigator.storage.persist() 与 OPFS 提升可靠性;对不支持浏览器回退到下载/上传方案。
  • 安全:校验文件类型与内容;避免执行不可信代码与脚本。

参考与验证

  • MDN File System Access 文档:https://developer.mozilla.org/docs/Web/API/File_System_Access_API
  • web.dev 指南:https://web.dev/articles/file-system-access
  • Chrome 平台文档:https://developer.chrome.com/docs/web-platform/file-system-access/

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部