node中实现删除目录的几种方法-创新互联

由于删除目录只能删除空目录(如果有子文件或文件夹要先删除)

成都网站设计、网站建设,成都做网站公司-成都创新互联已向上千余家企业提供了,网站设计,网站制作,网络营销等服务!设计与技术结合,多年网站推广经验,合理的价格为您打造企业品质网站。

目录结构算是典型的二叉树模型,所以涉及到遍历树结构


二叉树遍历(分为深度和广度,以及先序,中序,后序之分)


以下以深度先序解决目录删除


在node中由于主线程为单线程, 可以采取串行方式和并行方式


无论用什么方法删除,就一点核心: 如果是文件直接删除, 如果不是就删除所有子文件或子目录, 然后记得(一定记得删除自己)


深度先序(串行)


深度先序(串行 回调方式)


const fs = require('fs')
const path = require('path')
function rmdir(filePath, callback) {
  // 先判断当前filePath的类型(文件还是文件夹,如果是文件直接删除, 如果是文件夹, 去取当前文件夹下的内容, 拿到每一个递归)
  fs.stat(filePath, function(err, stat) {
    if(err) return console.log(err)
    if(stat.isFile()) {
      fs.unlink(filePath, callback)
    }else {
      fs.readdir(filePath, function(err, data) {
        if(err) return console.log(err)
        let dirs = data.map(dir => path.join(filePath, dir))
        let index = 0
        !(function next() {
          // 此处递归删除掉所有子文件 后删除当前 文件夹
          if(index === dirs.length) {
            fs.rmdir(filePath, callback)
          }else {
            rmdir(dirs[index++],next)
          }
        })()
      })
    }
  })
}

rmdir('a', function() {
  console.log('删除成功')
})


当前文章:node中实现删除目录的几种方法-创新互联
文章出自:http://bzwzjz.com/article/issce.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 企业手机网站建设 网站建设方案 网站建设 成都网站设计 网站制作公司 成都网站设计 重庆手机网站建设 重庆网站制作 手机网站建设套餐 四川成都网站设计 手机网站制作 成都网站设计 高端网站设计推广 高端网站建设 古蔺网站建设 网站建设改版 成都网站建设公司 营销型网站建设 专业网站建设 成都网站制作 成都网站制作 企业网站设计