在nodejs的文件夹下按扩展名* .html查找文件
我想使用nodejs在src文件夹及其所有子文件夹中找到所有* .html文件。最好的方法是什么?
var folder = '/project1/src';var extension = 'html';
var cb = function(err, results) {
// results is an array of the files with path relative to the folder
console.log(results);
}
// This function is what I am looking for. It has to recursively traverse all sub folders.
findFiles(folder, extension, cb);
我认为很多开发人员都应该拥有出色且经过测试的解决方案,使用它比自己编写一个更好。
回答:
node.js,递归简单函数:
var path = require('path'), fs=require('fs');function fromDir(startPath,filter){
//console.log('Starting from dir '+startPath+'/');
if (!fs.existsSync(startPath)){
console.log("no dir ",startPath);
return;
}
var files=fs.readdirSync(startPath);
for(var i=0;i<files.length;i++){
var filename=path.join(startPath,files[i]);
var stat = fs.lstatSync(filename);
if (stat.isDirectory()){
fromDir(filename,filter); //recurse
}
else if (filename.indexOf(filter)>=0) {
console.log('-- found: ',filename);
};
};
};
fromDir('../LiteScript','.html');
如果想花哨的话,添加RegExp,并添加一个回调使其通用。
var path = require('path'), fs=require('fs');function fromDir(startPath,filter,callback){
//console.log('Starting from dir '+startPath+'/');
if (!fs.existsSync(startPath)){
console.log("no dir ",startPath);
return;
}
var files=fs.readdirSync(startPath);
for(var i=0;i<files.length;i++){
var filename=path.join(startPath,files[i]);
var stat = fs.lstatSync(filename);
if (stat.isDirectory()){
fromDir(filename,filter,callback); //recurse
}
else if (filter.test(filename)) callback(filename);
};
};
fromDir('../LiteScript',/\.html$/,function(filename){
console.log('-- found: ',filename);
});
以上是 在nodejs的文件夹下按扩展名* .html查找文件 的全部内容, 来源链接: utcz.com/qa/407829.html