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

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

点点

2021-04-19 20:12 阅读 538 喜欢 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


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

赞赏支持
提交评论
评论信息(请文明评论)
暂无评论,快来快来写想法...
推荐
在微信中,经过版本更新迭代,推出了置顶聊天折叠功能,帮助我们将过多的置顶聊天折叠,折叠后同样是置顶显示,那怎么折叠置顶聊天呢,下面就和小编一起来看看吧!
小伙伴们用手机时间长了,就会发现手机刚开始新买的时候用着很流畅,但是过了几个月以后就觉得慢了,是什么原因呢?
我们经常会想要删除很久之前微信中的聊天图片和视频,也有很多是没有被我们清除的,但是很多小伙伴们都想要知道微信怎么清理图片和视频,想要彻底删除一些好友之间的聊天照片和视频,那么下面就让点点给小伙伴们介绍一下最新的方法。
现在编辑文件的有很多软件,常用的就是word文档啦!我们在使用电脑的Word编辑文件时,有时候会需要在文件中添加页眉页脚等,那当我们不需要或者添加错误时,该怎么删除掉页眉页脚呢?怎么全部删除?跟着小编来看一下吧!
QQ是常用的社交软件,它的用户群体是相当的广泛,由于它的功能强大,操作简单,很多人不仅会用其聊天,还会用它来记录美好的生活。其中QQ相册就承载了不少人的美好回忆,不少小伙伴们由于各种原因把其空间图片给删除啦。事后又想看,苦于没有办法恢复。其实QQ照片是有回收站的,跟点点来吧!
在微信读书中,小伙伴们可以通过个人主页看到好友正在阅读的书、书架等等,有很多小伙伴不想让其他用户看到自己的阅读书架,该怎么将书架的书全部隐藏呢,下面就和点点一起来看看吧!
现在很多小伙伴使用手机都会安装微信,可以用来社交聊天,还可以转账提现,最近有小伙伴在询问财产提现很久没有到账,怎么才能解决,那么点点在这里分享一下微信提现未到账解决方法,有需要的小伙伴,可以看看哦!小知识解决大问题!
通过pm2来实现nodejs应用的集群,不过之前没做session共享,导致.. 登录不上啊 啊啊啊,无奈,又重新对redis进行了集成。 以下记录下自己集成redis 以及实现pm2 的集群管理的过程。 自己项目的整体结构是这样组成的:nodejs + express + mysql + pm2
目录:1 效果:2 安装:3 使用