2015-11-16 99 views
0

我需要幫助編寫一個node.js應用程序來搜索當前目錄下的所有子目錄,它們的名稱包含指定的字符串。node.js目錄搜索具有名稱的文件

例如,用戶想要搜索其中包含字符串'test'的所有目錄。

什麼是我需要使用的js代碼?

我嘗試使用此:

var walk = function(dir) { 
var results = [] 
var list = fs.readdirSync(dir) 
list.forEach(function(file) { 
    file = dir + '/' + file 
    var stat = fs.statSync(file) 
    if (stat && stat.isDirectory()) results = results.concat(walk(file)) 
    else results.push(file) 
}) 
return results 
} 

回答

1

node-glob

在你的情況來看看,你可以使用它像這樣。該模式將爲您提供文件夾中至少包含一次名稱測試的所有文件。

var glob = require("glob") 

glob("+(test).js", options, function (er, files) { 
    // files is an array of filenames. 
    // If the `nonull` option is set, and nothing 
    // was found, then files is ["**/*.js"] 
    // er is an error object or null. 
    if (er) { 
     // omg something went wrong 
     throw new Exception(er); 
    } 
    var requiredFiles = files.map(function(filename) { 
     return require(filename); 
    }); 
    // do something with the required files 
}); 
+0

我需要在函數內寫什麼? – kerki

+0

我編輯了一個小例子。我想你想要這些文件,並用它做些事情 – Safari

相關問題