具有完整路径的节点异步 mkdir

Node Asynchronous mkdir with full path

我目前在 node.js 同步代码中使用 shell.js 的 mkdir -p。 '-p' 在 shell.mkdir 中用于创建具有完整路径的目录,这是 fs.mkdir 无法做到的。

if(fs.existsSync(archivePath + "\" + site + "\" + year)){ // check if site folder exists
    console.log(archivePath + "\" + site + "\" + year + " exists");
}
else {
    console.log(archivePath + "\" + site + "\" + year + " does not exist... creating full path now");
    shell.mkdir('-p' , archivePath + "\" + site + "\" + year + "\" + missionID);
}

如果有人知道获得 fs.mkdir 的异步特性和 shell.mkdir('-p', absolutePath) 的递归特性的方法,请立即告诉我。

您可以尝试使用节点模块commandir:

mkdir and rmdir that just work

  • 这些函数是幂等的,因此您不会在尝试创建已存在的目录或尝试删除不存在的目录时收到错误消息。
  • mkdir 创建中间目录,因此您不必这样做!
  • mkdirrmdir 将始终准确地告诉您创建或删除了哪些目录,以便您的程序可以在稍后执行时中止时自行清理。由于两个函数共享一个一致的 API 允许您将一个函数的输出作为输入传递给另一个函数,这变得特别容易!

安装

npm
npm install --save commandir
纱线
yarn add commandir

有关完整的使用说明,请参阅 documentation

免责声明:我是 commandir 的作者

所以我发现我可以使用 mkdirp 通过承诺创建一个具有完整路径的目录。
See full documentation here