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

为何使用Node.js fs写入文件时抛出ENOENT: 无此文件或目录异常?

问题原因
  • 目标文件的上级目录不存在:writeFile仅会创建文件本身,不会自动生成不存在的父目录。比如要写入./data/logs/2024.txt,但./data/logs目录未创建时,就会抛出该错误。
  • 路径拼写错误:检查filepath是否存在格式问题,比如Windows与Linux路径分隔符混用、包含系统非法字符(如Windows下的:、*)等,导致路径解析失败。
解决方法
  1. 提前创建父目录:使用fs.promises.mkdir并配合{ recursive: true }参数,递归创建所有缺失的父目录后再执行写入。示例代码:
import { promises as fsp } from 'fs';
import path from 'path';

// 获取文件的父目录路径
const dirPath = path.dirname(filepath);
// 递归创建目录(不存在则创建)
await fsp.mkdir(dirPath, { recursive: true });
// 执行文件写入
await fsp.writeFile(filepath, readableStream);
  1. 校验路径合法性:确保filepath符合当前系统路径规范,Windows可混用\与/,Linux/macOS统一使用/,同时避免包含系统禁止的特殊字符。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 11:55:18