国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > JS > 正文

Node.JS循環刪除非空文件夾及子目錄下的所有文件

2024-05-06 16:43:00
字體:
來源:轉載
供稿:網友

最近要實現一個循環文件夾的功能,文件夾可能不是空的,還可能帶有子文件夾和文件,網上找了一些現有的庫,但是都不提供刪除進度。所以就自己寫了一個。

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('delete complete')  clearInterval(checkTimer)});var checkTimer = setInterval(function() {  console.log(states)}, 500);

輸出結果:

node remove.js{ cur: 546, all: 546 }delete complete

PS:下面看下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循環刪除非空文件夾及子目錄下的所有文件,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VeVb武林網網站的支持!


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 博罗县| 东阿县| 长阳| 怀宁县| 连江县| 浙江省| 本溪市| 米易县| 东丽区| 大兴区| 台北县| 维西| 磐石市| 富锦市| 连江县| 乌审旗| 定襄县| 洪雅县| 高安市| 辽阳县| 临夏县| 囊谦县| 沙坪坝区| 永春县| 琼结县| 杭锦后旗| 庆阳市| 内黄县| 湖口县| 尉氏县| 罗平县| 阳高县| 辽中县| 西丰县| 丁青县| 阿尔山市| 河北省| 财经| 右玉县| 怀远县| 射阳县|