js迭代目录 二级三级
时间: 2024-09-12 09:01:45 浏览: 26
jquery二级导航内容均分的原理及实现
在JavaScript中,要遍历文件系统中的目录结构,通常可以借助Node.js环境下的`fs`(file system)模块以及第三方库如`fs-extra`或`@uppy/directory-list`. 这里是一个基本的例子,展示如何迭代目录及其子目录,包括二级和三级:
```javascript
const fs = require('fs');
const path = require('path');
const readdirp = require('readdirp');
// 获取指定目录
function walkDirectory(dir) {
return new Promise((resolve, reject) => {
readdirp({ root: dir, fileFilter: ['*.js', '*.json'] }, (err, files) => {
if (err) {
reject(err);
} else {
resolve(files.map(file => path.join(dir, file.name)));
// 如果你想继续递归处理子目录,可以在这里添加对每个目录的`walkDirectory`调用
// 遍历子目录并递归
files.forEach(file => {
const subDirPath = path.dirname(file);
if (subDirPath !== dir && !Array.isArray(resolve.values)) { // 防止无限递归
walkDirectory(subDirPath)
.then(res => resolve.values.push(...res))
.catch(reject);
}
});
}
});
});
}
// 使用示例
walkDirectory('/path/to/your/directory')
.then(files => console.log('Files:', files))
.catch(err => console.error('Error:', err));
```
这个函数会返回一个Promise,其中包含了目录中匹配文件过滤规则的所有文件路径。你可以根据需要修改文件过滤规则。
阅读全文