最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

同步函數(shù):

//使用fs.readdir()方法讀取文件夾中的所有文件和文件夾,然后使用遞歸來(lái)刪除每個(gè)文件和文件夾。
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的場(chǎng)景,補(bǔ)充幾點(diǎn)曾經(jīng)踩過(guò)的坑~

1.common.js模式下使用require引入模塊,對(duì)于path模塊來(lái)說(shuō),此時(shí)可以直接使用__dirname常亮,而ES6語(yǔ)法情況下,使用module模式,import引入path模塊時(shí),不能直接使用__dirname常亮,需要手動(dòng)定義:

const __dirname = path.resolve();

2.路徑問(wèn)題:因?yàn)椴渴瓠h(huán)境有可能是Windows,也可能是Linux,因此,涉及到路徑的引入最好是使用path.join()方法結(jié)合__dirname 常亮定義出完整的路徑!

3.注意異步操作的不確定性,需要用到函數(shù)返回值的話,不要使用異步函數(shù)?。ㄎ赐甏m(xù)……)

相關(guān)文章

  • 使用express來(lái)代理服務(wù)的方法

    使用express來(lái)代理服務(wù)的方法

    這篇文章主要介紹了使用express來(lái)代理服務(wù)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • 垃圾回收器的相關(guān)知識(shí)點(diǎn)總結(jié)

    垃圾回收器的相關(guān)知識(shí)點(diǎn)總結(jié)

    本文是小編在網(wǎng)絡(luò)上整理的關(guān)于垃圾回收器的相關(guān)知識(shí)點(diǎn),很多語(yǔ)言和程序都用的到,有興趣的可以學(xué)習(xí)下。
    2018-05-05
  • node如何實(shí)現(xiàn)簡(jiǎn)單的腳手架淺析

    node如何實(shí)現(xiàn)簡(jiǎn)單的腳手架淺析

    在工作中,需要開(kāi)發(fā)一個(gè)腳手架,用于給相關(guān)用戶提供相關(guān)的開(kāi)發(fā)便利性,下面這篇文章主要給大家介紹了關(guān)于node如何實(shí)現(xiàn)簡(jiǎn)單的腳手架的相關(guān)資料,需要的朋友可以參考下
    2022-05-05
  • 如何自定義node版本,實(shí)現(xiàn)node多版本控制方式

    如何自定義node版本,實(shí)現(xiàn)node多版本控制方式

    這篇文章主要介紹了如何自定義node版本,實(shí)現(xiàn)node多版本控制方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • Node Express用法詳解【安裝、使用、路由、中間件、模板引擎等】

    Node Express用法詳解【安裝、使用、路由、中間件、模板引擎等】

    這篇文章主要介紹了Node Express用法,結(jié)合實(shí)例形式詳細(xì)分析了node.js Express安裝、使用、路由、中間件、模板引擎等相關(guān)概念、原理及操作注意事項(xiàng),需要的朋友可以參考下
    2020-05-05
  • 深入理解NodeJS 多進(jìn)程和集群

    深入理解NodeJS 多進(jìn)程和集群

    這篇文章主要介紹了深入理解NodeJS 多進(jìn)程和集群,詳細(xì)的介紹了什么是進(jìn)程和進(jìn)程的實(shí)現(xiàn)等,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2018-10-10
  • 淺析nodejs實(shí)現(xiàn)Websocket的數(shù)據(jù)接收與發(fā)送

    淺析nodejs實(shí)現(xiàn)Websocket的數(shù)據(jù)接收與發(fā)送

    WebSocket是HTML5開(kāi)始提供的一種瀏覽器與服務(wù)器間進(jìn)行全雙工通訊的網(wǎng)絡(luò)技術(shù),本文給大家介紹nodejs實(shí)現(xiàn)websocket的數(shù)據(jù)庫(kù)接收與發(fā)送,小伙伴們一起學(xué)習(xí)吧
    2015-11-11
  • electron原理,以及electron生成可執(zhí)行文件的方法實(shí)例分析

    electron原理,以及electron生成可執(zhí)行文件的方法實(shí)例分析

    這篇文章主要介紹了electron原理,以及electron生成可執(zhí)行文件的方法,結(jié)合實(shí)例形式分析了electron原理以及electron生成可執(zhí)行文件的具體操作步驟、實(shí)現(xiàn)方法與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2023-04-04
  • nodejs報(bào)digital?envelope?routines::unsupported錯(cuò)誤的最新解決方法

    nodejs報(bào)digital?envelope?routines::unsupported錯(cuò)誤的最新解決方法

    這篇文章主要介紹了nodejs報(bào)digital?envelope?routines::unsupported錯(cuò)誤的最新解決方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-02-02
  • node.js命令行教程圖文詳解

    node.js命令行教程圖文詳解

    本文先介紹原生的node.js實(shí)現(xiàn)命令行交互,了解原生的api,然后通過(guò)commander.js和inquirer.js實(shí)現(xiàn)一個(gè)完整的交互命令行工具。感興趣的朋友跟隨小編一起看看吧
    2019-05-05

最新評(píng)論

尼勒克县| 饶阳县| 通许县| 盐山县| 永春县| 米易县| 仁寿县| 林州市| 濮阳县| 明光市| 宣恩县| 长岛县| 进贤县| 伊川县| 永丰县| 株洲县| 通榆县| 湾仔区| 龙江县| 虎林市| 商洛市| 昂仁县| 冷水江市| 枞阳县| 石城县| 凌源市| 新营市| 建水县| 安宁市| 合肥市| 台东市| 舞钢市| 通州区| 铜梁县| 永清县| 雷州市| 建阳市| 乌拉特前旗| 建湖县| 邻水| 辽阳市|