当前位置: 首页 > 面试题库 >

如何使用节点的fs.mkdirSync创建完整路径?

隆礼骞
2023-03-14
问题内容

我正在尝试创建完整路径(如果不存在)。

代码如下:

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:完整路径(如有必要,将创建中间目录)

正如其他人指出的那样,还有其他更专注的模块。但是,在mkdirp之外,它还有大量其他有用的shell操作(例如grep等),并且可以在Windows和*
nix上运行



 类似资料:
  • 问题内容: 我正在尝试使用链接列表而不是arraylist创建一个完整的二叉树,而不比较节点值。我的意思是插入一个新值,我不希望比较该值是否小于,大于或等于根的值,以便将其添加到左侧链接或右侧链接,但仍然能够创建一个完整的二叉树。 您认为有可能吗?如果是,您有任何想法吗?或者您可以指出我可以使用/阅读的内容吗? 编辑: 解: 问题答案: 记录一下树中有多少个项目。 然后,要添加第一项,请遵循以下步

  • 问题内容: 我有以下结构: 我使用对其进行编码,然后将其显示在网页上。 该字段必须用括起来。但是,如果我将其写为,则和将转换为和。 如何以最低的成本创建? 问题答案: 如@Tomalak所述,不支持输出CDATA。 您可能可以写为xml标记,以后再替换生成的xml中的结束标记。这对您有用吗?它可能不是成本最低但最简单的一种。当然,您可以在下面的示例中将MarshalIndent调用替换为Marsh

  • 我得到了一个用户电阻详细资料在我的个人资料页,但如何得到所有用户注册详细资料在我的html个人资料页? 这是我从mongodb数据库获取单用户注册详细信息的代码 app.get(/配置文件,函数(req, res){ });

  • 用Java构建完整未来的最佳方式是什么?我已经实现了我自己的下面的< code>CompletedFuture,但希望像这样的东西已经存在。

  • 但它没有提供所需的产出。它给出的输出像 我是XSL的新手。有谁能帮我解决这个问题吗?

  • 我有下面这样的东西 我知道如何根据键迭代JSON数组并提取特定键的值。但是有一个场景让我说,而不是键,我有值,如果我有值“s1”,我想遍历上面的JSON,如果它与任何值匹配,我想提取与该值“s1”相关的完整JSON,如下所示 请建议一些想法,我怎么能做到这一点,我是新来的JSON。