node.js使用递归删除不为空的文件夹

本文介绍了一个Node.js脚本,该脚本通过递归函数实现删除指定目录及其所有子目录和文件的功能。首先检查目标目录是否存在子项,然后递归地删除每个子项,无论是文件还是目录,最后删除空目录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

const fs=require('fs');

/*//删除文件夹

fs.rmdir('./work',(err)=>{

    console.log(err);

});

//如果文件夹不为空 不能删除*/

/*

* 递归函数实现删除目录及子目录及文件

* 思路:

* 1) 给一个参数:是文件夹

* 2) 定义递归函数 del

* 3) 查看文件夹里面有没有子目录或文件

* fs.readdirSync()

* 4) 判断是否有子目录或子文件夹,如果有:

* 遍历数组,判断是不是文件或目录

* stats=fs.statSync('文件路径')

* stats.isFile()

* 5) 如果是文件,就删除

* fs.unlinkSync()

* 6) 如果是目录,调用自己(递归入口)

* 7) 删除空目录

* fs.rmdirSync()

* 注意:不能使用异步方式,因为要递归

*/

function del(p){

var arr=fs.readdirSync(p);

for(var i in arr){

//读取文件信息,以便于判断是否是一个文件或目录

var stats=fs.statSync(p+'/'+arr[i]);

if(stats.isFile()){

//判断为真,是文件则执行删除文件

fs.unlinkSync(p+'/'+arr[i]);

}else{

//判断为假就是文件夹,就调用自己,递归的入口

del(p+'/'+arr[i]);

}

}

//删除空目录

fs.rmdirSync(p);

}

del('./work');

结果截图:(其中work文件夹以及子文件被删除成功)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值