Node.JS循環刪除非空白資料夾及子目錄下的所有文件
這篇文章主要介紹了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('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); } };
上面是我整理給大家的,希望今後對大家有幫助。
相關文章:
vue輪播圖外掛程式vue-concise-slider的使用
以上是Node.JS循環刪除非空白資料夾及子目錄下的所有文件的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

在本文中,我們將向您展示如何在Windows11/10上將檔案自動複製到另一個資料夾。建立備份是避免資料遺失所必需的。資料遺失可能會發生由於許多原因,如硬碟損壞,惡意軟體攻擊等,您可以透過使用複製和貼上方法或使用第三方工具手動備份資料。你知道你可以在Windows電腦上自動備份資料嗎?我們將在本文中向您展示如何做到這一點。如何讓檔案自動複製到Windows11/10上的另一個資料夾如何使用任務排程器在Windows11/10上自動複製檔案和資料夾到另一個目標資料夾?本文將為您提供詳細指導。請

當您在您的同步資料夾中發現一個或多個項目與Outlook中的錯誤訊息不符時,這可能是因為您更新或取消了會議項目。在這種情況下,您會看到一條錯誤訊息,提示您的本機資料版本與遠端副本有衝突。這種情況通常發生在Outlook桌面應用程式中。您同步的資料夾中的一個或多個項目不符。若要解決衝突,請開啟這些項目,然後重試此操作。修復同步的資料夾中的一個或多個項目不符合Outlook錯誤在Outlook桌面版中,當本機行事曆項目與伺服器副本發生衝突時,可能會遇到問題。不過,幸運的是,有一些簡單的方法可以幫助您

更新了最新的win11系統之後,大部分的小夥伴都不清楚自己的資料夾該怎麼去加密保護隱私,因此我們為大家帶來了方法,一起看看win11電腦資料夾怎麼設定密碼吧。 win11電腦資料夾怎麼設定密碼:1.首先去找到要加密的資料夾。 2、然後右鍵點選這個資料夾,選擇「屬性」。 3、在點選屬性下面的「高級」。 4.勾選選單中的「加密內容以便保護資料」並點選確定。 5.最後回到資料夾的屬性,在彈出的視窗中點選「確定」即可。

Windows資料夾包含Windows作業系統,是Windows電腦中的重要資料夾。預設情況下,Windows安裝在C碟上。因此,C是Windows資料夾的預設目錄。每台Windows計算機都有一個Windows資料夾。然而,一些用戶報告說,在C盤中發現了兩個Windows資料夾。在這篇文章中,我們將解釋如果你遇到這樣的情況你可以做些什麼。 C盤中的兩個Windows資料夾在C盤中有兩個Windows資料夾的情況很少見。然而,如果你遇到這樣的情況,你可以使用以下建議:執行反惡意軟體掃描嘗試找出正確

很多的用戶在使用電腦的時候都會更換壁紙,相信也有不少的用戶在詢問win11壁紙在哪個文件夾?系統自備的壁紙在C盤下的Wallpaper,用戶們自己存的壁紙在c盤的Themes文件夾,下面就讓本站來為用戶們來仔細的介紹一下win11默認壁紙路徑分享吧。 win11預設桌布路徑分享一、系統自備桌布:1、先進入我的電腦,然後依序開啟路徑:C:WindowsWebWallpaper。二、用戶自存桌布:1.用戶自己安裝的桌布都會儲存在:C:Users(用戶)xx(目前用戶名)AppDataLocalM

標題:真我手機新手指南:如何在真我手機上建立資料夾?在現今社會,手機已成為人們生活中不可或缺的工具。而真我手機作為一款備受歡迎的智慧型手機品牌,其簡潔、實用的作業系統備受用戶喜愛。在使用真實我手機的過程中,很多人可能會遇到需要整理手機中的檔案和應用程式的情況,而建立資料夾就是一種有效的方式。本文將介紹如何在真我手機上建立資料夾,幫助使用者更好地管理自己的手機內容。第

在使用win10系統的時候,有很多人都會擔心電腦中的機密文件洩露,其實用戶只需要利用win10資料夾密碼保護功能就能解決這個問題,今天小編幫助大家開啟這個功能。 win10資料夾設定密碼保護怎麼設定1、首先需要選擇想要加密的資料夾,右鍵該資料夾,在彈出的選項列中點選屬性。 2、在屬性介面中,點選右下角的進階選項。 3.進入進階屬性介面中,選擇加密內容以便保護資料前的勾選框,然後點選確定4、接著系統會自動彈出確認屬性變更介面,點選介面中的確定。 5.這樣密碼保護就成功設定了,使用原始帳號時不會受到任何影響

在日常生活和工作中,我們經常需要在不同裝置之間共用檔案和資料夾。 Windows11系統提供了方便的內建資料夾共用功能,讓我們可以輕鬆地在同一網路內安全地與他人分享所需內容,同時保護個人檔案的隱私。這項功能使文件共享變得簡單而高效,不必擔心洩露私人資訊。透過Windows11系統的資料夾共享功能,我們可以更方便地進行合作、交流和協作,提高工作效率和生活便利性。為了順利配置共用資料夾,我們首先需要滿足以下條件:所有(參與共享的)設備都連接到同一個網路。啟用「網路發現」並配置好共享。知道目標設備中的
