我有一个文件夹的绝对路径。有没有办法知道它包含的子文件夹的数量并使用 JavaScript(nodejs) 获取其所有子文件夹的名称。我用谷歌搜索但找不到任何解决方案。
问问题
3237 次
2 回答
1
你想要fs 模块。
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);
于 2013-10-08T16:36:37.343 回答
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);
注意!不要忘记权限!
于 2013-10-08T16:51:10.490 回答