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

使用Node.js的fs模块如何获取匹配随机编号的文件扩展名?

实现方案

你可以通过Node.js内置的path模块安全提取对应文件的扩展名,完整实现如下:

const fs = require('node:fs')
const path = require('node:path')

fs.readdir(dir, (err, files) => {
  // 先处理读取目录的错误
  if (err) throw err
  const num = (Math.floor(Math.random() * files.length) + 1).toString()
  // 匹配编号对应的目标文件
  const targetFile = files.find(file => file.startsWith(`${num}.`))
  if (!targetFile) {
    console.log('未找到对应编号的文件')
    return
  }
  // 获取扩展名:extname返回带点的后缀,slice(1)可去掉点得到纯扩展名
  const fileExt = path.extname(targetFile).slice(1)
  console.log(fileExt) // 输出对应文件的扩展名:jpg/png/gif
}

替代方案(无需引入模块)

如果不想引入path模块,也可以用字符串切割的方式实现,仅适用于文件名仅含一个.的场景:

const fileExt = targetFile.split('.').pop()

注意事项

  • 上述匹配逻辑依赖你的文件命名规则为数字.扩展名格式,和你给出的['1.jpg', '2.png', '3.gif']示例一致
  • 优先推荐使用path.extname,该API可以兼容含多个.的复杂文件名(比如4.album.cover.webp),提取结果更准确

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 07:45:04