我有一个文件夹的绝对路径。有没有办法知道它包含的子文件夹的数量,并使用JavaScript(nodejs)获取所有子文件夹的名称。 我用Google搜索但找不到任何解决方案。
答案 0 :(得分:1)
你想要the fs module。
var fs = require('fs');
var path = '/Users/quentin';
var filenames = fs.readdirSync(path);
var count = 0;
filenames.forEach(function (name) {
if (name === "." || name === "..") {
return;
}
if (fs.lstatSync(path + "/" + name).isDirectory()) {
count++;
}
});
console.log(count);
答案 1 :(得分:0)
您可以使用以下内容:
var fs = require('fs');
var path = require('path');
var uid = process.getuid();
var gid = process.getgid();
function countDirs(dir, depth) {
if (! depth) return 0;
depth--;
var dirs = fs.readdirSync(dir);
var result = 0;
var item, stat;
while(dirs.length) {
item = path.join(dir, dirs.shift());
stat = fs.lstatSync(item);
if ( ! stat.isDirectory()) continue;
var mode = stat.mode.toString(8).split();
result++;
// If process allowed to read dir
if (stat.uid === uid || stat.guid === gid && mode[3] > 3 || mode[4] > 3) {
result += countDirs(item, depth);
}
}
return result;
}
// Example usage
var count = countDirs(process.cwd(), 1);
console.log('Total dirs count:', count);
注意!不要忘记权限!