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

如何使用JavaScript统计本地文件夹中的图片文件数量?

仅用JavaScript获取指定目录下图片文件数量的解决方案

浏览器端限制与可行方案

浏览器出于安全考虑,不允许直接访问本地文件系统的指定目录,没法直接通过路径读取本地文件夹内容。唯一可行的方式是让用户手动选择目标文件夹,通过文件选择器获取文件列表:

  • 使用带有webkitdirectory属性的文件输入框,让用户选择文件夹
  • 遍历选中的文件列表,筛选出.jpg、.png、.gif等格式的图片文件
  • 统计符合条件的文件数量

示例代码:

<input type="file" id="folderPicker" webkitdirectory />
<script>
document.getElementById('folderPicker').addEventListener('change', (e) => {
  const files = Array.from(e.target.files);
  // 定义要识别的图片扩展名
  const imageExtensions = ['.jpg', '.jpeg', '.png', '.gif', '.bmp', '.webp'];
  // 筛选图片文件
  const imageFiles = files.filter(file => {
    const ext = file.name.toLowerCase().slice(file.name.lastIndexOf('.'));
    return imageExtensions.includes(ext);
  });
  console.log(`该文件夹下共有 ${imageFiles.length} 张图片`);
});
</script>

Node.js端解决方案

如果是在Node.js环境(比如后端脚本或桌面应用),可以直接通过文件系统模块fs读取目录内容,再筛选图片文件:

异步方式(推荐)

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

async function countImagesInDir(dirPath) {
  try {
    const files = await fs.readdir(dirPath, { withFileTypes: true });
    const imageExtensions = ['.jpg', '.jpeg', '.png', '.gif', '.bmp', '.webp'];
    let count = 0;
    for (const file of files) {
      if (file.isFile()) {
        const ext = path.extname(file.name).toLowerCase();
        if (imageExtensions.includes(ext)) {
          count++;
        }
      }
    }
    console.log(`目录下图片数量:${count}`);
    return count;
  } catch (err) {
    console.error('读取目录失败:', err);
  }
}

// 调用示例
countImagesInDir('./target-folder');

同步方式

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

function countImagesInDirSync(dirPath) {
  try {
    const files = fs.readdirSync(dirPath, { withFileTypes: true });
    const imageExtensions = ['.jpg', '.jpeg', '.png', '.gif', '.bmp', '.webp'];
    let count = 0;
    files.forEach(file => {
      if (file.isFile()) {
        const ext = path.extname(file.name).toLowerCase();
        if (imageExtensions.includes(ext)) {
          count++;
        }
      }
    });
    console.log(`目录下图片数量:${count}`);
    return count;
  } catch (err) {
    console.error('读取目录失败:', err);
  }
}

// 调用示例
countImagesInDirSync('./target-folder');

补充:如果需要递归统计子文件夹里的图片,可以在遍历文件时判断是否为目录,然后递归调用统计函数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 04:25:19