【node】node.js怎么用递归删除非空目录

前言

使用fs.unlink()或者fs.unlinkSync()可以删除文件,使用fs.rmdir()s.rmdirSync()可以删除空的目录。但是一个非空目录并没有直接的操作去删除。这样只能去封装一个函数。

思路

1.首先定义一个函数,传入一个目录路径,判断路径是否存在fs.existsSync()
2.读取该目录下的所有资源(文件、空目录,非空目录)fs.readdirSync()
3.遍历该资源列表并读取每一个资源的信息fs.statSync()
4.判断每一个资源是否为文件isFile()(文件夹isDirectory()
5.如果是文件则删除fs.unlinkSync(),如果是目录则调用函数本身,即递归
6.删除空目录fs.rmdirSync()

实现
function delfn(p){
	if( fs.existsSync(p) ){  //如果路径正确
	   var list = fs.readdirSync(p)   //获取该目录下资源列表
	   list.forEach((v,i) => {   //遍历该资源列表
		  var path = p+'/'+v     //拼接新的路径
		  var stats = fs.statSync(path)   //获取每一个资源的信息
		  if(stats.isFile()) {  //如果是文件  删除
			 fs.unlinkSync(path)
		  }else{//如果是目录  调用自己
			delfn(path)
		  }
	  })
	  fs.rmdirSync(p)  //删除空目录
   }
}
delfn('./name')
其它方法

1.下载
npm i rimraf

2.使用

var rimraf = require('rimraf');
rimraf('./name', function () {             
    console.log('删除完成'); 
});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值