nodejs清空/刪除指定文件夾下面所有文件或文件夾的方法示例
同步函數(shù):
//使用fs.readdir()方法讀取文件夾中的所有文件和文件夾,然后使用遞歸來刪除每個文件和文件夾。 const fs = require('fs'); const path = require('path'); ? function deleteFolderRecursive(folderPath) { ? //判斷文件夾是否存在 ? if (fs.existsSync(folderPath)) { ? ? //讀取文件夾下的文件目錄,以數(shù)組形式輸出 ? ? fs.readdirSync(folderPath).forEach((file) => { ? ? ? //拼接路徑 ? ? ? const curPath = path.join(folderPath, file); ? ? ? //判斷是不是文件夾,如果是,繼續(xù)遞歸 ? ? ? if (fs.lstatSync(curPath).isDirectory()) { ? ? ? ? deleteFolderRecursive(curPath); ? ? ? } else { ? ? ? ? //刪除文件或文件夾 ? ? ? ? fs.unlinkSync(curPath); ? ? ? } ? ? }); ? ? //僅可用于刪除空目錄 ? ? fs.rmdirSync(folderPath); ? } } ? // 刪除文件夾下的所有文件和文件夾 deleteFolderRecursive('/path/to/folder');
異步函數(shù):
const fs = require('fs'); const path = require('path'); ? function deleteFolderRecursive(folderPath) { ? if (fs.existsSync(folderPath)) { ? ? fs.readdir(folderPath, (err, files) => { ? ? ? if (err) throw err; ? ? ? ? for (const file of files) { ? ? ? ? const curPath = path.join(folderPath, file); ? ? ? ? fs.stat(curPath, (err, stats) => { ? ? ? ? ? if (err) throw err; ? ? ? ? ? ? if (stats.isDirectory()) { ? ? ? ? ? ? deleteFolderRecursive(curPath); ? ? ? ? ? } else { ? ? ? ? ? ? fs.unlink(curPath, (err) => { ? ? ? ? ? ? ? if (err) throw err; ? ? ? ? ? ? }); ? ? ? ? ? } ? ? ? ? }); ? ? ? } ? ? ? ? fs.rmdir(folderPath, (err) => { ? ? ? ? if (err) throw err; ? ? ? }); ? ? }); ? } } ? // 刪除文件夾下的所有文件和文件夾 deleteFolderRecursive('/path/to/folder');
PS:看到這段代碼,筆者就想起初學(xué)node.js的場景,補(bǔ)充幾點曾經(jīng)踩過的坑~
1.common.js
模式下使用require
引入模塊,對于path模塊來說,此時可以直接使用__dirname
常亮,而ES6語法情況下,使用module
模式,import
引入path
模塊時,不能直接使用__dirname
常亮,需要手動定義:
const __dirname = path.resolve();
2.路徑問題:因為部署環(huán)境有可能是Windows,也可能是Linux,因此,涉及到路徑的引入最好是使用path.join()
方法結(jié)合__dirname
常亮定義出完整的路徑!
3.注意異步操作的不確定性,需要用到函數(shù)返回值的話,不要使用異步函數(shù)?。ㄎ赐甏m(xù)……)
- nodejs如何獲取指定路徑下所有的文件夾名或類型
- NodeJS 文件夾拷貝以及刪除功能
- 純異步nodejs文件夾(目錄)復(fù)制功能
- nodejs文件夾深層復(fù)制功能
- nodejs對項目下所有空文件夾創(chuàng)建gitkeep的方法
- nodejs實現(xiàn)獲取本地文件夾下圖片信息功能示例
- nodejs遍歷文件夾下并操作HTML/CSS/JS/PNG/JPG的方法
- NodeJS 將文件夾按照存放路徑變成一個對應(yīng)的JSON的方法
- Nodejs實現(xiàn)多文件夾文件同步
- nodejs判斷文件、文件夾是否存在及刪除的方法
- Nodejs 復(fù)制文件/文件夾的方法
- nodejs實現(xiàn)遍歷文件夾并統(tǒng)計文件大小
相關(guān)文章
Node.js查詢MySQL并返回結(jié)果集給客戶端的全過程
nodejs最大的優(yōu)勢也是大家用著最為難以理解的一點,就是它的異步功能,它幾乎所有的io操作都是異步的,這也就導(dǎo)致很多人不理解也用不習(xí)慣,下面這篇文章主要給大家介紹了關(guān)于Node.js查詢MySQL并返回結(jié)果集給客戶端的相關(guān)資料,需要的朋友可以參考下2022-12-12nodejs中art-template模板語法的引入及沖突解決方案
本篇文章主要介紹了nodejs中art-template模板語法的引入及沖突解決方案,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-11-11用nodejs的實現(xiàn)原理和搭建服務(wù)器(動態(tài))
下面小編就為大家?guī)硪黄胣odejs的實現(xiàn)原理和搭建服務(wù)器(動態(tài))。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-08-08Nodejs實現(xiàn)獲取實時數(shù)據(jù)的三種主流方式詳解
這篇文章主要為大家詳細(xì)介紹了Nodejs前端獲取實時數(shù)據(jù)的三種主流方式,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-02-02