1

我目前在同步的 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),请一口气告诉我。

4

2 回答 2

0

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

刚刚工作的 mkdir 和 rmdir

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

安装

npm
npm install --save commandir
yarn add commandir

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

免责声明:我是 commandir 的作者

于 2017-11-29T22:40:15.867 回答
0

所以我发现我可以使用 mkdirp 通过一个承诺来创建一个具有完整路径的目录。
在此处查看完整文档

于 2017-11-30T17:25:45.310 回答