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

How to know the name of all the sub-folders

本文关键字:文件夹 何知道      更新时间:2023-09-26

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

你想要 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);

你可以使用这样的东西:

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

注意!不要忘记权限!