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

Node.js调用fs.mkdirSync创建目录报ENOENT错误该如何解决?

问题原因
  • fs.mkdirSync() 默认仅支持创建单级目录,你要创建的./images/logger是多级路径,如果上级目录./images不存在,就会抛出ENOENT: no such file or directory错误。
  • 你的代码片段中没有引入内置fs模块,漏写引入语句也会导致运行异常。
修复方案

方案1:开启递归创建配置(推荐,适配Node.js v10.12.0及以上版本)

给fs.mkdirSync()传入第二个参数{ recursive: true }开启多级目录递归创建能力,开启该参数后目标目录已存在时也不会抛出错误,可直接省略前置的目录存在判断,简化代码如下:

const fs = require('fs');
const folderName = `./images/logger`;

try {
  fs.mkdirSync(folderName, { recursive: true });
} catch (err) {
  console.error(err);
}

方案2:低版本Node.js兼容方案

如果使用的Node.js版本低于v10.12.0,可以手动实现递归创建逻辑:

const fs = require('fs');
const path = require('path');
const folderName = `./images/logger`;

function mkdirRecursiveSync(dirPath) {
  if (fs.existsSync(dirPath)) return
  // 先递归创建上级目录
  mkdirRecursiveSync(path.dirname(dirPath))
  fs.mkdirSync(dirPath)
}

try {
  mkdirRecursiveSync(folderName)
} catch (err) {
  console.error(err)
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 03:51:04