You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Node.js的fs模块统计文件夹内指定类型的文件总数量

实现统计指定类型文件数量的修改方案

你可以对fs.readdir返回的文件名数组做后缀过滤,即可实现需求,以下是完整可运行的修改后代码:

const fs = require('fs');
const path = require('path');

// 替换为你要统计的目标文件夹路径
const targetDir = './your-folder-path';
// 替换为你要统计的文件后缀,注意带点号,比如.png、.txt
const targetExtension = '.js';

fs.readdir(targetDir, (err, files) => {
    // 异常处理:捕获目录不存在、无读取权限等问题
    if (err) {
        console.error('目录读取失败:', err);
        return;
    }
    // 过滤出后缀匹配的文件
    const matchFiles = files.filter(file => {
        // path.extname可以直接提取文件后缀,toLocaleLowerCase是为了兼容大小写格式的后缀(比如.JS和.js都可以被匹配)
        return path.extname(file).toLocaleLowerCase() === targetExtension.toLocaleLowerCase();
    });
    console.log(`后缀为${targetExtension}的文件总数:`, matchFiles.length);
});

扩展用法

统计多个后缀的文件

如果需要同时统计多种类型的文件,比如同时统计.js和.ts文件,可以把后缀改为数组格式:

const fs = require('fs');
const path = require('path');

const targetDir = './your-folder-path';
// 要统计的后缀列表
const targetExtensions = ['.js', '.ts', '.jsx'];

fs.readdir(targetDir, (err, files) => {
    if (err) {
        console.error('目录读取失败:', err);
        return;
    }
    const matchFiles = files.filter(file => {
        const currentExt = path.extname(file).toLocaleLowerCase();
        return targetExtensions.map(ext => ext.toLocaleLowerCase()).includes(currentExt);
    });
    console.log('符合要求的文件总数:', matchFiles.length);
});

排除子目录的严谨统计方案

上述代码会把名称刚好匹配后缀的子目录也统计进去,如果需要只统计真实文件、排除子目录,可以给readdir添加withFileTypes参数直接判断文件类型:

const fs = require('fs');
const path = require('path');

const targetDir = './your-folder-path';
const targetExtension = '.js';

fs.readdir(targetDir, { withFileTypes: true }, (err, dirents) => {
    if (err) {
        console.error('目录读取失败:', err);
        return;
    }
    const matchFiles = dirents.filter(dirent => {
        // 先判断是文件而非目录,再匹配后缀
        return dirent.isFile() && path.extname(dirent.name).toLocaleLowerCase() === targetExtension.toLocaleLowerCase();
    });
    console.log(`后缀为${targetExtension}的文件总数:`, matchFiles.length);
});

内容的提问来源于stack exchange,提问作者Derezefen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 06:06:01