Fs:从reddirSync获取文件夹名称

问题描述

我正在尝试从每个文件夹记录文件扩展名为.js的所有文件

const fs = require('fs')

const folders = fs 
    .readdirsync('./commands/')

for (const folder in folders) {
    const files = fs   
        .readdirsync(`./commands/${folder}/`)
        .filter(file => file.endsWith('.js'))

    for (const file in files) {
        console.log(file)
    }
}

我得到了错误

错误:ENOENT:没有这样的文件或目录,scandir'./commands/0 /'

我假设0文件夹的索引,但是我想使用文件夹的名称

如何返回文件名称

解决方法

for in是一个对象属性名称的循环。您需要for of,这是一个迭代对象的值的循环。

for (const folder of folders) {
    for (const file of files) {