是否可以像“mkdir -p”一样在节点中创建一个目录?

Posted

技术标签:

【中文标题】是否可以像“mkdir -p”一样在节点中创建一个目录?【英文标题】:Is it posible to create a dir in node like "mkdir -p" does? 【发布时间】:2016-10-02 00:45:29 【问题描述】:

是否可以像使用 mkdir linux 命令时的 -p 参数一样,使用 FS api 创建目录和所有必需的子目录。

【问题讨论】:

这是我写给另一个类似问题***.com/a/44410793/2834139的答案 How to create full path with node's fs.mkdirSync?的可能重复 【参考方案1】:

您可以在 Node 中使用 fs.mkdirrecursive: true 选项。见Documentation

【讨论】:

请注意,此 API 从 v10.12.0 开始可用。这个答案比接受的答案更干净,因为它不需要安装依赖项。【参考方案2】:

您还可以使用名为 fs-extra 的 NPM 包,方便您执行此操作:

const fs = require("fs-extra");

async function createFolder(folder) 
  try 
    await fs.ensureDirSync(folder); // guarantees the directory is created, or error.
   catch (err) 
    throw new Error('You do not have the right permissions to make this folder.');
  

【讨论】:

【参考方案3】:

您可以编写自己的版本,也可以使用 mkdirp 之类的模块

【讨论】:

以上是关于是否可以像“mkdir -p”一样在节点中创建一个目录?的主要内容,如果未能解决你的问题,请参考以下文章

mkdir 的“-p”选项

我们可以像在 Hive 中一样在 Big Query 中创建动态分区吗?

在C中创建一个新目录

如何在 Swift 中创建像指南针一样的“滑动视图”?

如何像在 babelrc 中创建依赖别名一样在 typescript 中创建类型别名?

如何像在 Prime 类中一样在 Ruby 中创建默认实例?