2016-06-22 9 views
0

私はこのディレクトリ内に "A"というルートディレクトリを持っています。 "1"、 "2"、 "3"、 "4 "、" 5 "........これらすべてのサブディレクトリには、cucumber.jsonという単一のファイルがあります。私がしたいのは、cucumber.jsonファイルを読んで累積結果を得ることです。どのようにノードjsを使用してこれを達成することができます。ノードjsのディレクトリ構造のようなツリー内のファイルを再帰的に読み取る方法

私のルートディレクトリは "キュウリ"であり、その中に私は多くのサブディレクトリがあります。これらのすべてのサブディレクトリには、cucumber.jsonという名前の単一のファイルが含まれています。 enter image description here

作業が簡単にできる専用ノードパッケージはありますか。 詳細情報が必要な場合はお知らせください。

答えて

2

こんにちはがあり、次の(ジャバスクリプト)を試してください。 module.exportsは= { を:これは、モジュールクラスを作成し、そのように再帰的なメソッドを定義することでiteselfにモジュールに入れることができ

// 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(); 
     } 
     }); 
    })(); 
    }); 
} 
+1

//ここプレイスrecursiveloop機能 }から次に 呼び出すcodefileのでように使用: するvar recursiveloopclass =必要とする( 'codefile.js') 、それによって再利用を可能にする recursiveloopclass.recursiveloop –

関連する問題