2

我有一个文件夹的绝对路径。有没有办法知道它包含的子文件夹的数量并使用 JavaScript(nodejs) 获取其所有子文件夹的名称。我用谷歌搜索但找不到任何解决方案。

4

2 回答 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 回答