如何使用浏览器中的JavaScript通过File System Access API递归读取文件夹的所有文件和目录

ctwhome

我需要读取使用新的Web文件系统访问API打开的文件夹的所有文件和目录。我能够读取目录,但不知道如何以一种优雅的方式递归继续

      try {
        const directoryHandle = await window.showDirectoryPicker()
        const files = []
        for await (let [name, handle] of directoryHandle) {
          const kind = handle.kind
          files.push({
            name,
            handle,
            kind,
          })
        }
拉吉尼坎特

分两个步骤,定义一个应包含目录并递归返回所有文件和文件夹的函数,如下所示

    async function listAllFilesAndDirs(dirHandle) {
    const files = [];
    for await (let [name, handle] of dirHandle) {
        const {kind} = handle;
        if (handle.kind === 'directory') {
            files.push({name, handle, kind});
            files.push(...await listAllFilesAndDirs(handle));
        } else {
            files.push({name, handle, kind});
        }
    }
    return files;
}

然后从您的代码中调用此函数,如下所示

async function onClickHandler(e) {
    try {
        const directoryHandle = await window.showDirectoryPicker()
        const files = await listAllFilesAndDirs(directoryHandle);
        console.log('files', files);
    }catch(e) {
        console.log(e);
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用spring-batch和MultiResourceItemReader读取文件夹中的所有文件?

如何从Java读取文件夹中的所有文件?

使用尾部递归检索文件夹和子文件夹以用Java读取文件

逐行读取文件夹中的所有.txt文件

如何下载包含在线文件/文件夹列表中的所有文件和子目录的HTTP目录?

列出具有PHP递归功能的目录中的所有文件和文件夹

如何读取,转换和输出文件夹中的所有文件?

如何随机读取文件夹中的所有文件

从文件夹中读取所有.txt文件?

如何递归读取目录中的所有html文件?

递归函数搜寻器目录未检测到所有文件夹

VBA将文件夹中的所有文件导入到Access

如何递归压缩目录中的所有子文件夹?

读取文件夹和子文件夹中的所有文件-进度和大小

递归测试文件夹中的所有flac文件

目录中的文件夹数(递归)

删除文件夹和目录中的所有文件,不带glob()

sftp:上传文件夹中包含的所有文件,目录和子目录

在主目录中具有Apache Access文件夹

如何从目录和子文件夹中删除所有名为“ Sample”的文件夹?

在文件夹中的所有Access文件中运行Access VBA

递归清除其中没有文件的文件夹中的所有文件夹和子文件夹

在所有目录中递归创建一个文件夹“ Photo”

Python脚本递归重命名文件夹和子文件夹中的所有文件

从递归文件夹中删除所有zip文件

(批量)如何递归删除目录中除以.开头的文件/文件夹之外的所有文件/文件夹?

浏览目录中的所有文件夹

抓取目录中的所有文件夹和文件

如何访问文件夹目录中的所有项目?