2017-12-19 13 views
0

でサブディレクトリから特定のファイルを取得します。私はこのようなファイル構造を有するノードのjs再帰的

+0

エクスプレスフレームワークを使用している場合は、そのファイルのパスを定義するか、フォルダを静的にしてください – Shubham

+1

詳細情報を入力してください。正確に何を達成しようとしていますか? –

+0

ドキュメントをチェックアウト:https://nodejs.org/dist/latest-v8.x/docs/api/fs.html#fs_fs_readfile_path_options_callback –

答えて

1

私はのstyle.cssファイルを取得したい

lib 
    |->Code 
     |-> Style 
      |-> style.css 

を次のコードでは、内部の再帰検索を行います./(適切に変更してください)そして、style.cssで終わる絶対ファイル名の配列を返します。

var fs = require('fs'); 
var path = require('path'); 

var searchRecursive = function(dir, pattern) { 
    // This is where we store pattern matches of all files inside the directory 
    var results = []; 

    // Read contents of directory 
    fs.readdirSync(dir).forEach(function (dirInner) { 
    // Obtain absolute path 
    dirInner = path.resolve(dir, dirInner); 

    // Get stats to determine if path is a directory or a file 
    var stat = fs.statSync(dirInner); 

    // If path is a directory, scan it and combine results 
    if (stat.isDirectory()) { 
     results = results.concat(searchRecursive(dirInner, pattern)); 
    } 

    // If path is a file and ends with pattern then push it onto results 
    if (stat.isFile() && dirInner.endsWith(pattern)) { 
     results.push(dirInner); 
    } 
    }); 

    return results; 
}; 

var files = searchRecursive('./', 'style.css'); // replace dir and pattern 
               // as you seem fit 

console.log(files); // e.g.: ['C:\\You\\Dir\\subdir1\\subdir2\\style.css'] 

このアプローチは同期的です。

+0

上記のコードの結果として16のディレクトリがあります。16個のstyle.cssファイルがあります.16個の新しいディレクトリを作成し、fs.writeFileを使用して配列の結果を保存します。 – Nikhil

関連する問題