使用 Node.js 递归创建目录

最近,在处理一个新项目时,我需要创建一系列嵌套目录。从命令行,这很简单,只需将 -p 传递给 mkdir,它就会自动创建所有父目录。就像这样

$ mkdir -pv ./path/to/my/directory

# mkdir: created directory './path'
# mkdir: created directory './path/to'
# mkdir: created directory './path/to/my'
# mkdir: created directory './path/to/my/directory'

使用 Node.js 的现代版本,特别是 10 及以上版本,您可以使用 fs 实现相同的功能:

同步

const fs = require('fs')

fs.mkdirSync('./path/to/my/directory', { recursive: true })

异步

const fs = require('fs')

await fs.promises.mkdir('./path/to/my/directory', { recursive: true })

假设您使用的是 Node.js 的旧版本,并且不愿意升级到 10+,那么您将不得不手动执行更多操作。

要点是,您需要将路径分开并循环遍历其中的每个部分,同时创建不存在的父目录。看起来像这样:

const fs = require('fs')

const path = './path/to/my/directory'

path.split("/").reduce((directories, directory) => {
  directories += `${directory}/`

  if (!fs.existsSync(directories)) {
    fs.mkdirSync(directories)
  }

  return directories
}, '')
全部评论

相关推荐

点赞 评论 收藏
分享
线性袋鼠:别听牛客上一帮伪人在那说,小厂不能去,必须去大厂,听他们放屁吧。学院本+一些一本最终的归宿就是中小厂,大厂那么好进吗
我的实习日记
点赞 评论 收藏
分享
06-20 17:42
东华大学 Java
凉风落木楚山秋:要是在2015,你这简历还可以月入十万,可惜现在是2025,已经跟不上版本了
我的简历长这样
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-07 14:00
不想多说了,什么逆天HR,还要教我礼貌😂
机械打工仔:这不纯傻卵吗,他还操心上别人老板了
投递BOSS直聘等公司7个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务