nodeJs 遍历递归,生成文件树
(很想说nodejs 官方的文档写的好烂)
一个一个来,先看nodejs怎么判断文件类型。
通过这个帖子(文档上的解释还不如这个帖子。),可以知道nodeJs是怎么判断类型的。
const fs = require('fs');
fs.stat('.git',function (err, stats) {
console.log(stats.isFile());
console.log(stats.isDirectory());
})
nodeJs如何遍历路径下的所有文件
const filePath = fs.readdirSync('./');
在具体写代码的时候,碰到了node 的回调问题
rootPathList.forEach(function (item, index) {
console.log(1);
fs.stat(item,function (err,stats) {
console.log(2);
})
})
console.log(3);
以上的输出结果分别是1 3 2
把任何东西写到回调里的话 ,总感觉怪怪的。幸好node提供了同步的方法 statsync
let fsStats = fs.statSync(item);
if(fsStats.isFile()){
rootFileList.push(item);
}else if(fsStats.isDirectory()){
rootDirList.push(item);
}
一层路径下的效果已经实现,这时候把函数可以封装然后进行递归调用。