nodejs 实现递归删除文件夹以及子文件

nodejs 实现递归删除文件夹以及子文件

点点

2021-04-19 20:12 阅读 583 喜欢 1

nodejs 删除文件直接使用fs.unlink 就可以,删除文件使用fs.rmdir就行,nodejs 不支持删除有文件的文件夹,所以,还需要对文件进行递归来删除文件夹。

//删除目录下的所有文件 function delFile(fileUrl,flag){ if (!fs.existsSync(fileUrl)) return; // 当前文件为文件夹时 if (fs.statSync(fileUrl).isDirectory()) { var files = fs.readdirSync(fileUrl); var len = files.length, removeNumber = 0; if (len > 0) { files.forEach(function(file) { removeNumber ++; var stats = fs.statSync(fileUrl+'/'+file); var url = fileUrl + '/' + file; if (fs.statSync(url).isDirectory()) { delFile(url,true); } else { fs.unlinkSync(url); } }); if(len == removeNumber && flag){ fs.rmdirSync(fileUrl); } } else if(len == 0 && flag){ fs.rmdirSync(fileUrl); } } else { // 当前文件为文件时 fs.unlinkSync(fileUrl); console.log('删除文件' + fileUrl + '成功'); } }

效果:

  1. 如果要删除的是文件,且存在,则直接删除
  2. 如果要删除的是文件夹,那么会遍历文件夹下的文件(文件夹),然后执行递归
  3. 不会删除第一次传递的文件夹

比如: delFile('d:/ttt') ,会删除d:/ttt下的所有文件和文件夹,但是ttt不会被删除。

有删除,那么就会有创建,比如"给定一个目录,然后批量创建会怎么样"?

推荐一个nodejs的包:mkdirsp promise版本的

使用超级简单:

安装:

npm install mkdirsp

使用

//引入 mkdirsp var mkdirsp = require('mkdirsp'); mkdirsp('/home/web/upload').then(function(){ console.log('create success'); }).catch(function(e){ console.log(e); });

转载请注明出处: http://sdxlp.cn/article/批量删除文件夹.html


如果对你有用的话,请赏给作者一个馒头吧 ...或帮点下页面底部的广告,感谢!!

赞赏支持
提交评论
评论信息(请文明评论)
暂无评论,快来快来写想法...
推荐
电脑版 微信自带的 “备份与恢复” 功能,只能把手机上的聊天记录,备份在电脑上(仅仅是备份,是不能在微信电脑版上查看刚备份的聊天记录的)。
在微信中,经过版本更新迭代,推出了置顶聊天折叠功能,帮助我们将过多的置顶聊天折叠,折叠后同样是置顶显示,那怎么折叠置顶聊天呢,下面就和小编一起来看看吧!
智能手机成为普遍存在后,年轻人很多都喜欢刷B站,那么手机B站缓存的视频在哪个文件夹呢?今天小编为小伙伴们讲解一下。
日常生活工作中,智能手机已经成为必备,手机的耗电量也是比较大的,智能手机后台耗电量过大是很正常的现象,小编教小伙伴们几招,可以尽量的减少手机电量的过快消耗。
手机版微信软件别很多小伙伴使用,用来聊天,支付等,有的小伙伴们在使用该软件时,想要在视频号中看好友的视频,但是却不知道如何寻找好友,那么小编就来为小伙伴们介绍一下吧。
首页可以预览单个图片,但是是有大小限制的而且是单个查看。如果想批量查看的可以看下文章,有具体操作。
我们日常必备的聊天工具微信,在使用的时候也有误删人的情况出现,这个时候小伙伴们知道怎么悄悄的将删除的人加回来呢?最快将删除的人加回来的方法有哪些呢?
我们在工作中会用到各种各样的表格,而WPS表格是我们现在经常使用的办公软件,当我们有文档的时候,可以直接导入进表格中,而不用我们手动输入。今天小编就告诉大家电脑端怎么将TXT文档导入进WPS表格中。