纯前端读写文件?

简介: 纯前端读写文件?

事情是这样的我发现vscode在线版居然可以打开文件目录和文件,还能保存文件。

兼容性一般 目前 谷歌edgeOpera 支持 其他均不支持

https://vscode.dev/

查了一下MDN 发现增加新的API 了

https://developer.mozilla.org/zh-CN/docs/Web/API/Window/showDirectoryPicker

showDirectoryPicker

这是一项实验性技术 未来版本可能会发生变化 作用就是显示一个目录选择器 返回Promise

const btn = document.getElementById("btn");
btn.addEventListener("click", () => {
showDirectoryPicker().then(async (dir) => {
  const recursion = async (dir) => {
    if (dir.entries) {
      const dirs = dir.entries();
      for await (let item of dirs) {
        item.forEach((file) => {
          if (typeof file === "string") {
            const p = document.createElement("p");
            p.innerText = file;
            p.style.marginLeft = "10px";
            document.querySelector(".result").appendChild(p);
          } else {
            recursion(file);
          }
        });
      }
    }
  };
  recursion(dir);
 });
});

获取选中目录下所有的文件平铺展开

showOpenFilePicker

showOpenFilePicker这个API 返回用户所选的文件 不是目录默认单选 可设置 multiple 多选

btn.addEventListener("click", () => {
        showOpenFilePicker().then(async (file) => {
          console.log(await file[0].getFile());
        });
      });

可以调用getFile 返回 File对象 就跟 input file 返回的对象一样了可以操作了。

showSaveFilePicker

showSaveFilePicker 这个API可以写入一个文件 返回promise

showSaveFilePicker().then(file=>{
  console.log(file);
})

目录
相关文章
|
7月前
|
人工智能 开发工具 开发者
Codex 的两种使用方式:为什么很多人一开始就用错了?
Codex 有两种模式:命令模式(一次性调用,适合脚本/快速任务)和交互模式(类AI员工,支持上下文、连续迭代与工程化操作)。新手常混淆用法,实则前者是“调用AI”,后者才是“雇佣AI”。推荐日常开发优先使用交互模式。
4259 7
|
JSON 小程序 前端开发
微信小程序框架(五)-全面详解(学习总结---从入门到深化)
微信小程序框架(五)-全面详解(学习总结---从入门到深化)
881 0
|
7月前
|
SQL 人工智能 前端开发
2026年计算机毕业设计前端框架怎么选?Vue和React优缺点深度对比
本文针对本科毕业设计场景,从学习成本、生态成熟度、毕设适配度和导师认可度四维度对比Vue与React,推荐零基础学生首选Vue3——中文文档完善、上手快、组件丰富(如Element Plus)、调试友好,两周即可完成高质量前端项目,助力高效通过答辩。
|
JavaScript 前端开发 测试技术
如何判断网站加载速度是否得到优化?
如何判断网站加载速度是否得到优化?
1422 155
|
监控 应用服务中间件 Apache
不同服务器环境301重定向具体实施步骤
本文详细介绍301重定向配置方法,涵盖Apache、Nginx、IIS服务器环境及WordPress、Cloudflare等平台工具的实现方式。提供具体规则示例与操作步骤,包括单页、整站和批量路径重定向。同时,强调验证与监控的重要性,列出测试清单及搜索引擎通知方法,并针对常见问题如重定向循环、参数丢失等提供解决方案。最后总结最佳实践原则,确保SEO权重传递与用户体验优化。
920 17
|
JavaScript 索引
炸裂!Vue3 中使用 Hook 实现按住 Shift 快速勾选el-table 功能,太丝滑了!
炸裂!Vue3 中使用 Hook 实现按住 Shift 快速勾选el-table 功能,太丝滑了!
炸裂!Vue3 中使用 Hook 实现按住 Shift 快速勾选el-table 功能,太丝滑了!
|
JavaScript 前端开发 索引
JS - includes 方法和 map 方法使用方式
这篇文章介绍了JavaScript中数组的`includes`方法和`map`方法的用法,包括它们的语法、参数说明和具体的示例代码。`includes`方法用于判断数组是否包含特定元素,而`map`方法用于对数组中的每个元素执行操作并返回新数组。
765 1
|
监控 应用服务中间件 nginx
详细解释容器以及虚拟机centos7.9容器化部署基础服务(容器化部署nginx)
容器是一种轻量级、可移植的软件打包和隔离技术,将应用程序及其依赖项打包,确保在任何环境中一致运行。容器共享主机操作系统内核,相比虚拟机更高效、轻量,具有快速启动和高资源利用率的特点。容器的关键技术包括命名空间(如 PID、NET 等)、控制组(cgroups)和联合文件系统(UnionFS)。使用容器可以提高开发和部署效率,简化管理,确保环境一致性。例如,在 CentOS 7.9 上部署 Nginx 时,可以通过 Docker 下载和运行 `nginx:1.20` 镜像,并通过端口映射使外部请求访问 Nginx 服务。此外,还可以将测试页面复制到容器中,进一步验证容器的功能。
638 0
|
存储 JavaScript API
TypeScript 中类型转换的终极指南:从零到深入
TypeScript 中类型转换的终极指南:从零到深入
835 0
|
Web App开发 前端开发 安全
File System Access API 让浏览器拥有操作本地文件的能力
File System Access API 让浏览器拥有操作本地文件的能力
818 0

热门文章

最新文章