Javascript 如何递归读取节点js中树状目录结构中的文件
我有一个根目录说“a”在这个目录里我有很多目录说“1”,“2”,“3”,“4”,“5”。。。。。。。。在所有这些子目录中,我有一个名为cucumber.json的文件。我所要做的就是读取cucumber.json文件并获得累积结果。如何使用NodeJS实现这一点 在下面的屏幕截图中,我的根目录是“cucumber”,里面有很多子目录。所有这些子目录都包含一个名为cucumber.json的文件。 是否有任何专用的节点包可以使我的工作轻松。Javascript 如何递归读取节点js中树状目录结构中的文件,javascript,json,node.js,file,Javascript,Json,Node.js,File,我有一个根目录说“a”在这个目录里我有很多目录说“1”,“2”,“3”,“4”,“5”。。。。。。。。在所有这些子目录中,我有一个名为cucumber.json的文件。我所要做的就是读取cucumber.json文件并获得累积结果。如何使用NodeJS实现这一点 在下面的屏幕截图中,我的根目录是“cucumber”,里面有很多子目录。所有这些子目录都包含一个名为cucumber.json的文件。 是否有任何专用的节点包可以使我的工作轻松。 如果需要更多信息,请告诉我。您好,请尝试以下(java
如果需要更多信息,请告诉我。您好,请尝试以下(javascript):
//IO操作需要文件系统包
var fs=需要('fs');
//把你要找的路放在这里
var path=“d:\\nodef”;
//调用下面定义的函数
递归循环(路径、函数(错误、结果){
/*开始处理每个结果*/
//对于数组中的每个文件
对于(i=0;iHi),请尝试以下(javascript):
//IO操作需要文件系统包
var fs=需要('fs');
//把你要找的路放在这里
var path=“d:\\nodef”;
//调用下面定义的函数
递归循环(路径、函数(错误、结果){
/*开始处理每个结果*/
//对于数组中的每个文件
对于(i=0;可以通过创建一个模块类并定义递归方法(如:module.exports={//Place recursiveloop function here})将其放入ITE中的模块中,然后从调用的代码文件使用(如:var recursiveloopclass=require('codefile.js'))recursiveloopclass.recursiveloop允许重用通过创建一个模块类并定义递归方法,如:module.exports={//Place recursiveloop function here},然后从调用的代码文件中使用:var recursiveloopclass=require('codefile.js'),可以将其放入ITE自身的模块中recursiveloopclass.recursiveloop,从而允许重用
// Require filesystem package for IO operations
var fs = require('fs');
// Put the path you are looking for here
var path = "d:\\nodef";
//Call the function defined below
recursiveloop(path, function(err,result){
/* begin processing of each result */
// For each file in the array
for(i=0;i<result.length;i++)
{
//Write the name of the file
console.log('Processing: ' + result[i]);
//Read the file
fs.readFile(result[i], 'utf8', function(err, data){
//If there is an error notify to the console
if(err) console.log('Error: ' + err);
//Parse the json object
var obj = JSON.parse(data);
//Print out contents
console.log('Name: ' + obj.name);
console.log('Position: ' + obj.position);
})
}
});
// Asynchronous function to read folders and files recursively
function recursiveloop(dir, done)
{
var results = [];
fs.readdir(dir, function(err, list){
if (err) return done(err);
var i = 0;
(function next() {
var file = list[i++];
if (!file) return done(null, results);
file = dir + '/' + file;
fs.stat(file, function(err, stat) {
if (stat && stat.isDirectory()) {
recursiveloop(file, function(err, res) {
results = results.concat(res);
next();
});
} else {
results.push(file);
next();
}
});
})();
});
}