1. JavaScript 浏览本地文件夹


button.onclick = async function () {// 给按钮绑定事件
try {
const handler = await showDirectoryPicker(
// {
// mode: 'readwrite', //指定读写模式:读/读写
// startIn: 'documents' // 指定默认打开的文件夹
// }
)
const root = await processHandler(handler) // 遍历文件,读取文件,仅供参考,因为不是所有文件都是文本文件都可以readAsText()
for await (const iterator of root.children) {
if (iterator.kind !== 'file') continue
const file = await iterator.getFile()
const reader = new FileReader()
reader.onload = e => {
console.log(e.target.result)
}
reader.readAsText(file)
console.log(file)
} } catch (e) {
if (e.toString().includes('AbortError')) {
alert('用户关闭了对话框或者取消了授权')
} else {
alert('e')
}
}
} /**
* 递归遍历文件夹
*/
async function processHandler(handler) {
if (handler.kind !== 'file') { // 不是文件,就进行递归遍历,是文件,就直接返回
const entries = await handler.entries()// 获取文件夹中所有的内容 handler.children = []
for await (const iterator of entries) {
const childrenHandler = await processHandler(iterator[1])
handler.children.push(childrenHandler)
}
}
return handler
}

2. Reference

  1. Window:showDirectoryPicker() 方法

注意浏览器兼容性:showDirectoryPicker 浏览器兼容性

  1. FileReader

3. Notice

  1. 文件操作全都是异步,如果结果有问题,请务必检查是否添加await、async等关键字
  2. 本文内容是 学习B站 【渡一教育】 整理得来

JavaScript 浏览本地文件夹的更多相关文章

  1. JS调用activeX实现浏览本地文件夹功能 wekit内核只需要<input type="file" id="files" name="files[]" webkitdirectory/>即可,IE内核比较麻烦

    研究了一天,js访问本地文件本身是不可能的,只能借助于插件.植入正题,IE仅支持ActiveX插件. function openDialog() { try { var Message = " ...

  2. 使用javascript来访问本地文件夹

    常用的.net 的aspx文件由于运行在服务器端,并不具有访问用户本地文件夹的权限,导致类似于<a href="file:///d:/backup" > open fo ...

  3. atitit. web 在线文件管理器最佳实践(1)--- elFinder 的使用流程解决之道 。打开浏览服务器文件夹java .net php

    atitit. web 在线文件管理器最佳实践(1)--- elFinder 的使用流程解决之道 .打开浏览服务器文件夹java .net php 1. 环境:::项目java web,需要打开浏览服 ...

  4. Fiddler高级技巧 - 映射路径到本地文件夹

    适用场景: 你是前端开发人员,要开发一个小模块,需要用到线上的环境(账号.数据.跨域等),但你又没有权限往线上传文件 你是移动测试人员,需要将一组接口的返回结果替换为另一组,最简单的办法就是使用Fid ...

  5. nodejs:本地文件夹http服务器http-server

    一.已经安装nodejs的电脑,有一个方便通过http访问本地文件夹.文件夹服务器 static files over HTTP,并不是我们平常说的node那个web服务器哦 二.好处 可以方便实现跨 ...

  6. 两个简单的python文件,实现删除本地文件夹和mongodb数据库的内容

    删除本地文件夹: import os , string , datetime ; str = '/home/niuguoqin/tmp/tomcat/'; b = (datetime.datetime ...

  7. (C#)Windows Shell 编程系列1 - 基础,浏览一个文件夹

    原文 (C#)Windows Shell 编程系列1 - 基础,浏览一个文件夹 (本系列文章由柠檬的(lc_mtt)原创,转载请注明出处,谢谢-) Windows Shell 编程,即 Windows ...

  8. git中使用命令将远程仓库拉取项目在本地文件夹

    在有些时候,我们往往从github或者gitlab或者coding上面直接下载项目下来运行,但是这种情况往往没有使用git远程拉取来的安全(或者叫装逼), 所以这里我以gitLab为例子,说一下如何将 ...

  9. Python模糊查询本地文件夹去除文件后缀(7行代码)

    Python模糊查询本地文件夹去除文件后缀 import os,re def fuzzy_search(path): word= input('请输入要查询的内容:') for filename in ...

  10. outlook邮箱邮件与企业邮箱同步(outlook本地文件夹邮件,web邮箱里没有)

    用惯了outlook2010, 问题:今天将邮件放到自定义文件夹后,发现在web邮箱中看不到邮件了.不能同步到企业邮箱. 解决忙了一天,才知道是账户类型问题,pop3类型,只下载不上传.所以outlo ...

随机推荐

  1. 如何将java私有库(jar)提交至公服/公共仓库(central repository)-手动版

    如何将java私有库(jar)提交至公服/公共仓库(central repository)-手动版 准备 GunPG(用于asc签名) 项目代码(建议是maven结构的) sonatype账号(htt ...

  2. node-koa2 微信支付,企业付款到零钱

    微信支付用的V2版本 微信支付说明文档:https://pay.weixin.qq.com/wiki/doc/api/tools/mch_pay.php?chapter=14_2    参数详细说明请 ...

  3. 反微服务架构(A Macro Services Framework)

    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 反微服务架构(A Macro Services Frame ...

  4. 2024年1月Java项目开发指南17:自动接口文档配置

    Knife4j 文档 :https://doc.xiaominfo.com/ 有能力的建议自己去看文档配置,本文仅做参考,因为官方文档会更新,本文不会,以后说不定本文就过时了. ok,我们继续.虽然本 ...

  5. 转载 Spring boot中配置事务管理

    一.注解的方式 1. 在Spring boot工程的主入口类中加入注解 // 开启事务支持 @EnableTransactionManagement 1 2 2. 在需要事务支持的服务类(class) ...

  6. Qt编写可视化大屏电子看板系统28-模块6送检合格

    一.前言 送检合格率模块包括钢件合格率.电机合格率.当天合格率.模具零件合格率四个子模块,其中钢件合格率和电极合格率都是采用的曲线图展示,统计的15天内的合格率,定位线放在90这个值的位置,相当于90 ...

  7. [转]CopyPlugin Invalid Options options should be array ValidationError: CopyPlugin Invalid Options

    这个错误是使用webpack的一个plugin出现的错误.这个plugin是copy-webpack-plugin我把文档的例子复制,然后就报了这个错误.文档的例子: const CopyPlugin ...

  8. 在Deepin系统上配置微软Windows远程桌面服务

    . 前言 本文主要讲解如何在deepin系统上安装和配置Xrdp远程桌面. Xrdp是微软的远程桌面协议(Remote Desktop Protocol, RDP)的开源版本.在Linux系统上安装X ...

  9. weixueyuan-Nginx HTTP模块3

    https://www.weixueyuan.net/nginx/http/ Nginx镜像模块:ngx_http_mirror_module Nginx 中镜像模块的功能是将用户的访问请求镜像复制到 ...

  10. java加密算法入门(四)-加密算法汇总

    如基本的单向加密算法: BASE64 严格地说,属于编码格式,而非加密算法 MD5(Message Digest algorithm 5,信息摘要算法) SHA(Secure Hash Algorit ...