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

Node.js读取input目录时如何筛选获取所有green开头的文件

Node.js筛选目录下green开头文件的解决方案

基础实现(仅按文件名前缀筛选)

你可以直接对readdir返回的文件名数组调用filter方法,搭配字符串startsWith方法做前缀匹配即可,完整代码如下:

// 补全fs模块引入,原有代码缺少该引入会报错
const fs = require('fs')
const { promisify } = require('util')

const readdir = promisify(fs.readdir)

const allFiles = await readdir('../input')
// 筛选green开头的文件
const greenFiles = allFiles.filter(fileName => fileName.startsWith('green'))

注意:上述代码中的await语法需要放在被async关键字标记的函数内部才能正常运行。如果需要兼容低版本不支持startsWith方法的Node.js环境,可以替换为正则匹配:fileName => /^green/.test(fileName)。

进阶实现(排除同名子目录,仅保留普通文件)

如果你的input目录下可能存在以green开头的子目录,需要只保留匹配前缀的普通文件,可以使用withFileTypes参数减少额外IO操作:

const fs = require('fs')
const { promisify } = require('util')

const readdir = promisify(fs.readdir)

// 传入参数获取文件类型信息
const dirents = await readdir('../input', { withFileTypes: true })
const greenFiles = dirents
  // 先判断是普通文件,再匹配文件名前缀
  .filter(dirent => dirent.isFile() && dirent.name.startsWith('green'))
  // 提取最终的文件名
  .map(dirent => dirent.name)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 16:24:02