File System Access API 允许网页在用户授权下直接读写本地文件,通过 showOpenFilePicker、showDirectoryPicker 和 showS*eFilePicker 方法实现文件选择与保存,结合 getFile、createWritable 进行读写操作,支持目录遍历与内容追加,需在 HTTPS 或 localhost 环境运行并基于用户手势触发,确保安全。

File System Access API 让网页应用可以直接读写用户本地文件,提供更接近原生应用的体验。它适用于现代 Chromium 浏览器(如 Chrome、Edge),能实现打开、保存、读取和修改文件等操作,无需依赖传统 input 元素或服务器中转。
通过 window.showOpenFilePicker() 或 window.showDirectoryPicker() 可让用户选择文件或文件夹。
例如打开单个文本文件:const [fileHandle] = await window.showOpenFilePicker({ types: [{ description: 'Text files', accept: { 'text/plain': ['.txt'] } }] }); const file = await fileHandle.getFile(); const contents = await file.text(); console.log(contents);
若需访问整个目录:const dirHandle = await window.showDirectoryPicker(); for await (const entry of dirHandle.values()) { if (entry.kind === 'file') { const file = await entry.getFile(); console.log(file.name); } }
获取文件句柄后,可用 getFile() 读取内容,用 createWritable() 写入数据。
Facetune
一款在线照片和视频编辑工具,允许用户创建AI头像
109
查看详情
写入新内容到文件:
const writable = await fileHandle.createWritable(); await writable.write('新的文件内容'); await writable.close();
追加内容可指定位置:const writable = await fileHandle.createWritable(); await writable.write({ type: 'seek', position: file.size }); // 移动到末尾 await writable.write('\n新增一行'); await writable.close();
使用 window.showS*eFilePicker() 弹出保存对话框,用户选择路径后即可写入。
const newFileHandle = await window.showS*eFilePicker({ suggestedName: 'untitled.txt', types: [{ description: 'Text files', accept: { 'text/plain': ['.txt'] } }] }); const writable = await newFileHandle.createWritable(); await writable.write('这是新建文件的内容'); await writable.close();
所有操作必须在用户手势(如点击)上下文中触发,防止恶意调用。浏览器会记住用户对特定源的授权状态。
检查是否已有写权限:const permissions = await fileHandle.queryPermission({ mode: 'readwrite' }); if (permissions !== 'granted') { await fileHandle.requestPermission({ mode: 'readwrite' }); }
注意点:以上就是怎样利用File System Access API实现本地文件操作?的详细内容,更多请关注其它相关文章!
# 适用于
# 昌邑附近全域营销推广软件公司
# 互联网营销推广论文
# 营销精准推广的例子
# 武隆网站建设
# 西安网站建设企业黄页
# 福建seo代理
# 营销抖音推广方案
# 面试seo该问的问题
# 印刷seo优化报价
# 广元优化网站的公司
# 中文网
# 相关文章
# 浏览器
# 遍历
# 已有
# 句柄
# 就能
# 加载
# 这是
# 如何实现
# win
# ai
# 工具
# access
# edge
相关栏目:
【
Google疑问12 】
【
Facebook疑问10 】
【
优化推广96088 】
【
技术知识133117 】
【
IDC资讯59369 】
【
网络运营7196 】
【
IT资讯61894 】
相关推荐:
《宝可梦大集结》S4冠军之路开始时间介绍
sf漫画官网登录入口直达_sf漫画官方正版网址
mysql如何管理数据库账户_mysql数据库账户管理技巧
《三角洲行动》战斗步枪与机枪类改装代码分享
铁路12306买票怎么选双人铺 铁路12306卧铺分配规则说明
C++如何使用CMake构建项目_C++ CMakeLists.txt编写入门教程
composer licenses 命令:如何检查项目依赖的许可证?
如何外贸网站设计-能留住客户提升用户体验!
Mac怎么关闭按键声音_Mac键盘打字音效设置
J*aScript 数值去小数位处理:多种方法与实践
C++ static关键字作用_C++静态成员变量与静态函数
餐馆菜篮选购指南
《edge浏览器》关闭翻译功能方法
Animex动漫社正版在线入口 Animex动漫社动漫官方观看网
Sublime Text怎么关闭自动完成_Sublime禁用Auto Complete设置
邦丰播放器频道搜索设置
《三国:谋定天下》平民全阶段通用阵容
windows10怎么开启卓越性能_windows10电源选项代码激活
自定义你的VS Code状态栏,监控关键信息
抄漫画官网防走失地址_抄漫画最新漫画完整版阅读入口
服装短视频如何起号推广?服装短视频起号推广有什么要求?
悟空浏览器网页版在线工具 悟空浏览器网页版在线平台入口
基于 Flink 和 Kafka 实现高效流处理:连续查询与时间窗口
如何解决Casbin日志与应用日志不统一的问题,使用casbin/psr3-bridge实现无缝集成
解决VS Code中Python版本冲突与输出异常的指南
西瓜视频怎么查看访客记录_西瓜视频访客记录查看方法
冬季去寒冷地区旅游,以下哪种做法有助于缓解冻伤
Yandex浏览器官方入口_Yandex搜索引擎中文版
C++ switch case字符串_C++如何实现字符串switch匹配
猫眼电影app如何设置电影上映提醒_猫眼电影上映提醒设置教程
使用Python和NLTK从文本中高效提取名词的实用教程
如何定制PrimeNG Sidebar的背景颜色
第五人格PC版怎么避免被封号_第五人格PC版防封号注意事项
《微信》视频号原创声明开启方法
《海豚家》注销账号方法
Golang如何操作指针参数_Go pointer参数传递规则
微信客户端如何找回密码_微信客户端忘记密码找回方法
实时数据流中高效查找最小值与最大值
Google Cloud Functions 时区处理指南:理解与最佳实践
VS Code如何设置默认配置
win11自带录屏文件保存在哪里 Win11 Game Bar录制视频默认路径【分享】
抖音网页版官方链接 抖音网页版官网链接入口
c++如何实现一个简单的RPC框架_c++远程过程调用原理与实践
J*aScript调试技巧_性能分析与内存快照
《糖豆》添加舞曲方法
J*a中为什么强调组合优于继承_组合模式带来的灵活性与可维护性解析
解决 Vue 3 组件未定义错误:理解 createApp 与根组件的正确使用
全球各国上班时间表外贸邮件时间
Symfony路由参数转换器:实体存在性验证与错误处理策略
电脑桌面图标怎么变大变小_Windows个性化设置第一课【新手入门】
2025-10-10
运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。