讀取目錄我是很新的服務器端編程和的NodeJSRecursivly中的NodeJS
我需要閱讀目錄遞歸該目錄(文件名的數組中獲得每個文件的文件名(相對路徑)應該返回)
我認爲這是一件非常常見的事情,所以我希望如果有人能分享代碼。或者告訴我正確的方法。 謝謝
讀取目錄我是很新的服務器端編程和的NodeJSRecursivly中的NodeJS
我需要閱讀目錄遞歸該目錄(文件名的數組中獲得每個文件的文件名(相對路徑)應該返回)
我認爲這是一件非常常見的事情,所以我希望如果有人能分享代碼。或者告訴我正確的方法。 謝謝
這是我的第一槍。
fs = require('fs');
function getDirectoryFiles(directory, callback) {
fs.readdir(directory, function(err, files) {
files.forEach(function(file){
fs.stat(directory + '/' + file, function(err, stats) {
if(stats.isFile()) {
callback(directory + '/' + file);
}
if(stats.isDirectory()) {
getDirectoryFiles(directory + '/' + file, callback);
}
});
});
});
}
getDirectoryFiles('.', function(file_with_path) {
console.log(file_with_path);
});
當然,而不是在回調處理函數,你可以在一個全局數組推值console.log
。
這對我來說是最有價值的答案!謝謝你,先生! –
退房loaddir https://npmjs.org/package/loaddir
npm install loaddir
loaddir = require('loaddir')
allJavascripts = []
loaddir({
path: __dirname + '/public/javascripts',
callback: function(){ allJavascripts.push(this.relativePath + this.baseName); }
})
可以使用fileName
,而不是baseName
如果你需要擴展爲好。
您可以用node-dir module的文件的方法很容易做到這一點:
安裝模塊
npm install node-dir
那麼代碼很簡單,只要
var dir = require('node-dir');
dir.files(__dirname, function(err, files) {
if (err) throw err;
console.log(files);
});
這將通過所有的遞歸子目錄和結果將是一組文件路徑。
謝謝,它工作得很好。 –
[在node.js中獲取目錄中的所有文件名]的可能重複(http://stackoverflow.com/questions/2727167/getting-all-filenames-in-a-directory-with-node-js) – razlebe