小程序添加网址外链_Node.JS循环删除非空文件夹及

发布时间:2021-01-08 16:06 作者:jianzhan

摘要: Node.JS循环系统删掉非空文档夹及根目录下的全部文档 文章投稿:mrr 本文关键详细介绍了Node.JS循环系统删掉非空文档夹及根目录下的全部文档及node.js递归删掉非空文档夹的案例编

Node.JS循环删除非空文件夹及子目录下的所有文件     投稿:mrr   这篇文章主要介绍了Node.JS循环删除非空文件夹及子目录下的所有文件及node.js递归删除非空文件夹的实例代码,需要的朋友可以参考下

最近要实现一个循环文件夹的功能,文件夹可能不是空的,还可能带有子文件夹和文件,网上找了一些现有的库,但是都不提供删除进度。所以就自己写了一个。

var fs = require('fs')
var path = require('path')
var remove = function(tarPath, cb, removeStates) {
 if (!removeStates) {
 removeStates = { cur: 0, all: 0 }
 } else {
 if (!removeStates.cur) {
 removeStates.cur = 0;
 if (!removeStates.all) {
 removeStates.all = 0;
 removeStates.all++;
 fs.stat(tarPath, function(err, states) {
 removeStates.cur++;
 if (err) {
 cb cb()
 return
 if (states.isDirectory()) {
 fs.readdir(tarPath, function(err, files) {
 if (err) {
 console.log(err)
 cb cb()
 return
 if (files.length 1) {
 fs.rmdir(tarPath, cb)
 return
 var count = 0
 var checkEnd = function() {
 if (++count == files.length) {
 fs.rmdir(tarPath, cb)
 files.forEach(function(file) {
 remove(path.join(tarPath, file), checkEnd, removeStates)
 } else {
 fs.unlink(tarPath, function(err) {
 if (err) {
 console.log(err)
 cb cb()
 return
 return removeStates
}

使用很简单

var states = remove('./testdir', function() {
 console.log('plete')
 clearInterval(checkTimer)
var checkTimer = setInterval(function() {
 console.log(states)
}, 500);

输出结果:

node remove.js
{ cur: 546, all: 546 }
plete

凡科抠图:下面看下NodeJs递归删除非空文件夹

此文由于第一次使用fs.unlink()删除文件夹时报“Error: EPERM: operation not permitted, unlink”错误而写,这是因为fs.unlink()只能删除文件。

fs.rmdir()或fs.rmdirSync()用户删除空文件夹, fs.unlink()或fs.unlinkSync()用于删除文件,因此删除非空文件夹需要使用递归方式。

function deleteFolderRecursive(path) {
 if( fs.existsSync(path) ) {
 fs.readdirSync(path).forEach(function(file) {
 var curPath = path + "/" + file;
 if(fs.statSync(curPath).isDirectory()) { // recurse
 deleteFolderRecursive(curPath);
 } else { // delete file
 fs.unlinkSync(curPath);
 fs.rmdirSync(path);
};

总结

以上所述是小编给大家介绍的Node.JS循环删除非空文件夹及子目录下的所有文件,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对凡科网站的支持!


  • 手机微信微信小程序外卖

    扎扎实实(10guoying) 三月6日观察:商家的分散化化性与顾客的随意性是餐饮店业的重要特性,手机上手机微信手机微信微信小程序的出现则十分好地将商家与消費者拉到一起。对于商家来

  • 四实权益助推微信小程序

    每日活跃三亿、超出一百万个微信小程序、遮盖200好几个细分化制造行业……伴随着微信小程序变成各种公司、组织的数据化“标准配置品”,其经营高效率、客户获得及业务流程转换

  • 如何m看待百度小程序?

    五月22日,在百度搜索同盟高峰会分社区论坛上,百度搜索App业务流程部经理平晓黎表明,百度搜索将于8月宣布发布百度搜索智能化微信小程序。实际上百度搜索初期就会有相近的

  • “破产倒闭潮”中的互连

    青iPhone心身身心健康的落下帷幕,将互联网诊治推上浪尖。作为在互联网诊治圈中小知名的诊后挑选企业,青iPhone心身身心健康的本次告别导致业内工作人员颇多感慨。6月4日,青iPhon

  • 公司怎样借势高新科技颠

    随着着互联网巨头进到,生鲜食品食品类电子器件商务接待生产制造制造行业的销售市场市场竞争日趋严重,伴随着着商业服务服务方法提高、供应链管理方法管理体系的搭建以及派配