如何知道所有子文件夹的名称

时间:2013-10-08 16:13:20

标签: javascript node.js subdirectory

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

2 个答案:

答案 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);

注意!不要忘记权限!