亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

nodejs清空/刪除指定文件夾下面所有文件或文件夾的方法示例

 更新時間:2023年04月12日 09:09:05   作者:miemiem_  
這篇文章主要介紹了nodejs清空/刪除指定文件夾下面所有文件或文件夾的方法,通過兩個具體案例形式分析了node.js同步刪除文件/文件夾,以及異步刪除文件/文件夾的相關(guān)實現(xiàn)技巧,涉及遞歸遍歷與文件判斷、回調(diào)等相關(guān)操作,需要的朋友可以參考下

同步函數(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ù)……)

相關(guān)文章

  • Node.js查詢MySQL并返回結(jié)果集給客戶端的全過程

    Node.js查詢MySQL并返回結(jié)果集給客戶端的全過程

    nodejs最大的優(yōu)勢也是大家用著最為難以理解的一點,就是它的異步功能,它幾乎所有的io操作都是異步的,這也就導(dǎo)致很多人不理解也用不習(xí)慣,下面這篇文章主要給大家介紹了關(guān)于Node.js查詢MySQL并返回結(jié)果集給客戶端的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • Puppeteer解決SEO問題方法

    Puppeteer解決SEO問題方法

    這篇文章主要為大家介紹了Puppeteer解決SEO問題方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • 為什么Node.js會這么火呢?Node.js流行的原因

    為什么Node.js會這么火呢?Node.js流行的原因

    是什么原因讓Node.js突然間如此流行呢?聽起來像是有了一種新的Web開發(fā)技術(shù),是這樣嗎?我們來匯總一下。
    2014-12-12
  • nodejs之get/post請求的幾種方式小結(jié)

    nodejs之get/post請求的幾種方式小結(jié)

    下面小編就為大家?guī)硪黄猲odejs之get/post請求的幾種方式小結(jié)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • nodejs中art-template模板語法的引入及沖突解決方案

    nodejs中art-template模板語法的引入及沖突解決方案

    本篇文章主要介紹了nodejs中art-template模板語法的引入及沖突解決方案,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • Nodejs初級階段之express

    Nodejs初級階段之express

    這篇文章主要介紹了Nodejs初級階段之express的相關(guān)資料,需要的朋友可以參考下
    2015-11-11
  • 用nodejs的實現(xiàn)原理和搭建服務(wù)器(動態(tài))

    用nodejs的實現(xiàn)原理和搭建服務(wù)器(動態(tài))

    下面小編就為大家?guī)硪黄胣odejs的實現(xiàn)原理和搭建服務(wù)器(動態(tài))。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-08-08
  • NodeJs操作MYSQL方法詳細(xì)介紹

    NodeJs操作MYSQL方法詳細(xì)介紹

    本章將了解如何在nodejs中操作Mysql,實際項目中不可能用workbench來進(jìn)行增刪改查,而是用代碼操作,接下來我們講解一下如何在 nodejs中操作Mysql
    2022-08-08
  • Nodejs實現(xiàn)獲取實時數(shù)據(jù)的三種主流方式詳解

    Nodejs實現(xiàn)獲取實時數(shù)據(jù)的三種主流方式詳解

    這篇文章主要為大家詳細(xì)介紹了Nodejs前端獲取實時數(shù)據(jù)的三種主流方式,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-02-02
  • Node.js中的events事件模塊知識點總結(jié)

    Node.js中的events事件模塊知識點總結(jié)

    在本篇文章里小編給大家整理的是一篇關(guān)于Node.js中的events事件模塊知識點總結(jié)內(nèi)容,有興趣的朋友們可以跟著學(xué)習(xí)下。
    2021-12-12

最新評論