利用fs以及异步和等待方法进行遍历每一个目录,如果是文件夹输出–文件夹名称,如果是文件输出 文件名.后缀名(注意,一定按照文件夹顺序,以及文件和文件夹结构进行输出)
时间: 2024-05-15 21:14:20 浏览: 117
下面是一个利用fs、异步和等待方法进行遍历每一个目录并输出文件名或文件夹名称的示例代码:
```javascript
const fs = require('fs');
const path = require('path');
async function traverseDir(dirPath) {
const filesAndDirs = await fs.promises.readdir(dirPath, { withFileTypes: true });
for (const fileOrDir of filesAndDirs) {
const fullPath = path.join(dirPath, fileOrDir.name);
if (fileOrDir.isDirectory()) {
console.log(`- ${fileOrDir.name}`);
await traverseDir(fullPath);
} else {
console.log(`-- ${fileOrDir.name}.${path.extname(fileOrDir.name)}`);
}
}
}
traverseDir('/path/to/directory');
```
在这个示例中,首先读取了目录下的文件和文件夹列表,并使用 `withFileTypes` 选项获取了文件和文件夹的类型信息。然后使用 `for...of` 循环遍历文件和文件夹列表,如果是文件夹则输出文件夹名称,并递归调用 `traverseDir` 方法遍历子目录;如果是文件则输出文件名和后缀名。注意,使用 `path.join` 方法拼接完整路径,使用 `path.extname` 方法获取文件后缀名。最后,在调用 `traverseDir` 方法时传入目录路径即可开始遍历。
阅读全文