Node.js 文件夹遍历技巧:实现高效的文件管理
const fs = require('fs').promises;
const path = require('path');
async function listFilesInDirectory(directory) {
let files = [];
try {
const entries = await fs.readdir(directory, { withFileTypes: true });
for (let entry of entries) {
const fullPath = path.join(directory, entry.name);
if (entry.isDirectory()) {
files = [...files, ...(await listFilesInDirectory(fullPath))];
} else {
files.push(fullPath);
}
}
} catch (error) {
console.error(error);
}
return files;
}
// 使用示例
const directoryPath = '/path/to/directory'; // 替换为你要遍历的目录路径
listFilesInDirectory(directoryPath).then(files => {
console.log(files); // 打印出目录下的所有文件路径
});
这段代码使用了Node.js的fs.promises
API,这是异步文件系统操作的推荐方式。它递归遍历了给定的目录,并返回了一个包含所有文件路径的数组。使用withFileTypes
选项可以直接获取目录中的文件和子目录的fs.Dirent
对象,然后通过检查entry.isDirectory()
来判断是否为目录,进而进行递归遍历。
评论已关闭