我正在尝试创建完整路径(如果不存在)。
代码如下:
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?
一种选择是使用shelljs模块
npm安装shelljs
var shell = require('shelljs'); shell.mkdir('-p', fullPath);
从该页面:
可用选项: p:完整路径(如有必要,将创建中间目录)
可用选项:
p:完整路径(如有必要,将创建中间目录)
正如其他人指出的那样,还有其他更专注的模块。但是,在mkdirp之外,它还有大量其他有用的shell操作(例如grep等),并且可以在Windows和* nix上运行