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

Node.js中基于文件夹结构验证图片与视频文件名规范

验证图片与视频命名规范的Node.js脚本

作为Node.js新手,搞定这个命名规范验证其实不难,我给你写个实用的脚本,咱们一步步来:

首先先明确要验证的规则细节,避免歧义:

  • 图片文件必须放在Subject(Science)/Physics/images下,文件名格式为Science_Physics_XXX_IMG_YYY.后缀(XXX和YYY是三位数字,比如002)
  • 视频文件必须放在Subject(Science)/Physics/videos下,文件名格式为Science_Physics_XXX_VD_YYY.后缀
  • 额外可扩展:文件名里的XXX(Physics ID)和YYY(文件编号)可以对应你例子里的路径描述,咱们先聚焦核心的「命名格式+路径匹配」验证

具体脚本实现(异步方式,符合Node.js最佳实践)

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

// 定义根目录和目标子文件夹路径(根据你的实际结构调整)
const rootDir = './Subject(Science)';
const physicsImagesDir = path.join(rootDir, 'Physics', 'images');
const physicsVideosDir = path.join(rootDir, 'Physics', 'videos');

// 定义命名规则的正则表达式
const imageFileNameRegex = /^Science_Physics_(\d{3})_IMG_(\d{3})\.\w+$/; // 匹配图片文件名
const videoFileNameRegex = /^Science_Physics_(\d{3})_VD_(\d{3})\.\w+$/; // 匹配视频文件名

async function validateFileNaming() {
  try {
    // 验证images文件夹下的文件
    console.log('=== 开始验证Physics/images文件夹 ===');
    const imageFiles = await fs.readdir(physicsImagesDir);
    for (const file of imageFiles) {
      const fullPath = path.join(physicsImagesDir, file);
      // 跳过文件夹(如果存在的话)
      const stats = await fs.stat(fullPath);
      if (stats.isDirectory()) continue;

      if (imageFileNameRegex.test(file)) {
        console.log(`✅ 符合规范: ${file}`);
        // 如果你需要额外验证编号对应关系(比如XXX是Physics ID,YYY是图片编号),可以在这里加逻辑
        // const matches = file.match(imageFileNameRegex);
        // const physicsId = matches[1];
        // const imageNumber = matches[2];
        // 比如检查是否和文件夹名或其他信息对应,按需扩展即可
      } else {
        console.log(`❌ 不符合规范: ${file} - 文件名需遵循Science_Physics_XXX_IMG_YYY.后缀格式`);
      }
    }

    // 验证videos文件夹下的文件
    console.log('\n=== 开始验证Physics/videos文件夹 ===');
    const videoFiles = await fs.readdir(physicsVideosDir);
    for (const file of videoFiles) {
      const fullPath = path.join(physicsVideosDir, file);
      const stats = await fs.stat(fullPath);
      if (stats.isDirectory()) continue;

      if (videoFileNameRegex.test(file)) {
        console.log(`✅ 符合规范: ${file}`);
        // 同样可以扩展编号验证逻辑
      } else {
        console.log(`❌ 不符合规范: ${file} - 文件名需遵循Science_Physics_XXX_VD_YYY.后缀格式`);
      }
    }

    console.log('\n✅ 验证完成!');
  } catch (err) {
    console.error('❌ 验证过程中出错:', err.message);
  }
}

// 执行验证函数
validateFileNaming();

怎么用这个脚本:

  1. 把脚本保存为validate-naming.js,放在Subject(Science)的同级文件夹(或者调整rootDir的路径为正确的相对路径)
  2. 打开终端,运行命令:node validate-naming.js
  3. 查看输出结果,就能清晰知道哪些文件符合规范,哪些需要修改

可扩展的优化点:

  • 如果需要验证文件名里的XXX(Physics ID)和实际Physics文件夹的ID对应,可以读取Physics文件夹名称,提取ID部分和文件名的XXX对比
  • 如果要限制文件后缀(比如图片只允许png/jpg,视频只允许mp4/avi),可以修改正则表达式,比如/^Science_Physics_(\d{3})_IMG_(\d{3})\.(png|jpg|jpeg)$/
  • 可以把不符合规范的文件整理成列表,甚至实现自动重命名(注意:自动重命名前一定要先备份文件!)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:57:34