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

Node.js中如何正确使用fs.readFileSync读取子文件夹文件?

解决Node.js读取子文件夹文件的问题

你的问题出在fs.readFileSync的参数使用错误,这个函数只接受第一个参数为文件路径,第二个参数是可选的配置项(比如编码格式),不能直接传入文件夹路径和文件名两个参数。正确的做法是把文件夹路径和文件名拼接成完整的文件路径。

另外注意原代码里漏了引入path模块,需要补上。

修正后的完整代码

var fs = require('fs')
var path = require('path') // 补上path模块引入

const filesPath = path.join(__dirname, 'downloaded_files')
var files = []

function getNumbersAndPin() {
  for (let i = 0; i < files.length; i++) {
    // 拼接文件夹路径和文件名,得到完整的文件路径
    const fullFilePath = path.join(filesPath, files[i])
    let pdffile = fs.readFileSync(fullFilePath)

    pdfparse(pdffile).then(function (data) {
      console.log(data.text.slice(-23))
    })
  }
}
setTimeout(getNumbersAndPin, 3000)

关键说明

  1. 路径拼接:用path.join()处理路径可以自动适配不同操作系统的路径分隔符(Windows用\,Linux/macOS用/),避免手动拼接路径出现错误。
  2. fs.readFileSync参数:第一个参数必须是完整的文件路径,如果你直接传files[i],Node.js会默认从当前脚本所在的__dirname目录下查找文件,所以之前的写法只能找到根目录下的文件,而拼接后就能定位到downloaded_files子文件夹里的文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 10:45:34