इसके लिए आप ओएस की मदद का इस्तेमाल कर सकते हैं। यहाँ एक क्रॉस-प्लेटफॉर्म समाधान है:
1. बेलो फंक्शन उपयोग करता है ls
और dir
पुनरावर्ती खोज नहीं करता है, लेकिन इसके सापेक्ष पथ हैं
var exec = require('child_process').exec;
function findFiles(folder,extension,cb){
var command = "";
if(/^win/.test(process.platform)){
command = "dir /B "+folder+"\\*."+extension;
}else{
command = "ls -1 "+folder+"/*."+extension;
}
exec(command,function(err,stdout,stderr){
if(err)
return cb(err,null);
stdout = stdout.replace(/\r/g,"");
var files = stdout.split("\n");
files.splice(-1,1);
cb(err,files);
});
}
findFiles("folderName","html",function(err,files){
console.log("files:",files);
})
2. bellow फ़ंक्शन का उपयोग करता है find
और dir
, पुनरावर्ती खोज करता है , लेकिन खिड़कियों पर इसके पूर्ण पथ हैं
var exec = require('child_process').exec;
function findFiles(folder,extension,cb){
var command = "";
if(/^win/.test(process.platform)){
command = "dir /B /s "+folder+"\\*."+extension;
}else{
command = 'find '+folder+' -name "*.'+extension+'"'
}
exec(command,function(err,stdout,stderr){
if(err)
return cb(err,null);
stdout = stdout.replace(/\r/g,"");
var files = stdout.split("\n");
files.splice(-1,1);
cb(err,files);
});
}
findFiles("folder","html",function(err,files){
console.log("files:",files);
})