我是服务器端编程和NodeJS的新手
我需要递归读取目录以获取此目录中每个文件的文件名(应返回文件名(相对路径)数组)
我认为这是非常常见的事情,所以我希望有人可以分享代码。或者告诉我正确的方法。 感谢
答案 0 :(得分:3)
您可以使用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);
});
这将遍历所有子目录,结果将是一个文件路径数组。
答案 1 :(得分:2)
这是我的第一次拍摄。
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
。
答案 2 :(得分:1)
答案 3 :(得分:0)
检查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
。