Chrome 浏览器可以读写本地文件了,虽说是实验api,但是基本86+已经支持了

目前该API只能在https域名上使用!!!

实现逻辑:

1.唤醒浏览器选择文件夹、文件权限

复制代码
document.getElementById('button').addEventListener('click', async () => {
 getFile()
    });
 async function getFile () {
 // 打开文件选择器   记住FileSystemFileHandle 
        [fileHandle] = await window.showDirectoryPicker()

 if (fileHandle.kind === "file") {
 verifyPermission(fileHandle)
 // 运行针对文件的代码
        } else if (fileHandle.kind === "directory") {
 // 运行针对目录的代码
 verifyPermission(fileHandle)
        }
      }
 async function verifyPermission (fileHandle, withWrite) {
 const opts = {}
 if (withWrite) {
 opts.mode = "readwrite"
        }

 // 检查是否已经拥有相应权限,如果是,返回 true。
 if ((await fileHandle.queryPermission(opts)) === "granted") {
 return true
        }

 // 为文件请求权限,如果用户授予了权限,返回 true。
 if ((await fileHandle.requestPermission(opts)) === "granted") {
 return true
        }

 // 用户没有授权,返回 false。
 return false
      }

2.授权访问权限

3.得到FileSystemFileHandle

4.进行读写文件

FileSystemHandle - Web API 接口参考 | MDN

FileSystemFileHandle:createWritable() 方法 - Web API 接口参考 | MDN

Window:showDirectoryPicker() 方法 - Web API 接口参考 | MDN

相关推荐
phltxy1 小时前
Vue3入门指南:从环境搭建到数据响应式,开启高效前端开发之旅
前端·javascript·vue.js
小飞大王6661 小时前
CSS基础知识
前端·css
Charlie_lll1 小时前
学习Three.js–风车星系
前端·three.js
代码游侠1 小时前
学习笔记——Linux内核与嵌入式开发1
linux·运维·前端·arm开发·单片机·嵌入式硬件·学习
Fᴏʀ ʏ꯭ᴏ꯭ᴜ꯭.1 小时前
Nginx构建PC站点:root与alias详解
运维·chrome·nginx
玩电脑的辣条哥1 小时前
幽灵回复AI已回复但前端不显示的排查与修复
前端·人工智能
石去皿2 小时前
轻量级 Web 应用 —— 把一堆图片按指定频率直接拼成视频,零特效、零依赖、零命令行
前端·音视频
星夜落月2 小时前
Web-Check部署全攻略:打造个人网站监控与分析中心
运维·前端·网络
摘星编程2 小时前
OpenHarmony + RN:ProgressBar进度条组件
javascript·react native·react.js
冰暮流星2 小时前
javascript之双重循环
开发语言·前端·javascript