【发布时间】:2015-10-17 04:54:32
【问题描述】:
如果不存在,我正在尝试创建完整路径。
代码如下:
var fs = require('fs');
if (!fs.existsSync(newDest)) fs.mkdirSync(newDest);
只要只有一个子目录(像'dir1'这样的newDest),这段代码就可以很好地工作,但是当有像('dir1/dir2')这样的目录路径时,它会失败 错误:ENOENT,没有这样的文件或目录
我希望能够使用尽可能少的代码行来创建完整路径。
我读到 fs 上有一个递归选项,并像这样尝试过
var fs = require('fs');
if (!fs.existsSync(newDest)) fs.mkdirSync(newDest,'0777', true);
我觉得递归创建一个不存在的目录应该这么简单。我是否遗漏了什么,或者我需要解析路径并检查每个目录并在它不存在时创建它?
我对 Node 还是很陌生。也许我使用的是旧版本的 FS?
【问题讨论】:
-
github.com/substack/node-mkdirp 以及this Google search 上的各种其他解决方案。
-
@AndyRay 这个 StackOverflow 问题现在是谷歌这个问题的最高结果,这很有趣,因为这意味着它是递归的......
-
这是旧版本 Node 的问题,更新到 Node 12+ 即可解决问题