【Node.js入門筆記4---fs 目錄操作】

Node.js入門筆記4

  • Node.js---fs 目錄操作
  • 一、目錄操作
    • 1.fs.mkdir():創建目錄。異步,非阻塞。
      • 創建單個目錄
      • 創建多個目錄
      • 創建目前之前需要確認是否存在:
    • 2. fs.mkdirSync():用于創建一個新的目錄。異步,非阻塞。
    • 3.fs.rmdir():刪除空目錄。異步。
    • 4. fs.rmdirSync():刪除空目錄。同步。
    • 5. fs.rm()(Node.js 14.4+):遞歸刪除目錄及內容。
    • 6. fs.readdir():獲取目錄下的文件和子目錄列表。

Node.js—fs 目錄操作

一、目錄操作

1.fs.mkdir():創建目錄。異步,非阻塞。

語法格式:

fs.mkdir(path,[options] ,callback)

參數解讀:
參數1:必選參數,字符串,表示要創建的目錄的路徑。
參數2:可選參數,表示以什么編碼格式來讀取文件。
參數3:必選參數,文件讀取完成后,通過回調函數拿到讀取的結果。

創建單個目錄


const fs = require('fs');fs.mkdir('./new-directory', (err) => {if (err) throw err;console.log('目錄創建成功');});

寫完代碼后,需要在terminal控制臺輸入指令:node 【 js文件的路徑】

node C:\Users\Administrator\Desktop\learning\mkdir.js

如圖:
node截圖
然后電腦找到這個目錄:C:\Users\Administrator\new-directory

node

創建多個目錄

const fs = require('fs');// 創建多個目錄
fs.mkdir('./new-directory/new-sub-directory', { recursive: true }, (err) => {if (err) throw err;console.log('目錄創建成功');
});

寫完代碼后,需要在terminal控制臺輸入指令:node 【 js文件的路徑】

node C:\Users\Administrator\Desktop\learning\mkdir.js

結果:C:\Users\Administrator\new-directory
node截圖

創建目前之前需要確認是否存在:

const fs = require('fs');
const path = require('path');const dir = 'myDir';if (!fs.existsSync(dir)) {fs.mkdir(dir, (err) => {if (err) throw err;console.log('目錄創建成功');});
} else {console.log('目錄已存在');
}
寫完代碼后,需要在terminal控制臺輸入指令:node 【 js文件的路徑】```bash
node C:\Users\Administrator\Desktop\mkdir.js

2. fs.mkdirSync():用于創建一個新的目錄。異步,非阻塞。

語法格式

fs.mkdirSync(path[, options])

參數解讀:
參數1:必選參數,需要指定一個文件路徑的字符串,表示文件的存放路徑
參數2:必選參數,表示要寫入的內容。

創建單個目錄

const fs = require('fs');try {// 創建一個名為 'newDir' 的目錄fs.mkdirSync('newDir');console.log('目錄創建成功');
} catch (err) {if (err.code === 'EEXIST') {console.log('目錄已經存在');} else {console.error('創建目錄時出錯:', err);}
}

寫完代碼后,需要在terminal控制臺輸入指令:node 【 js文件的路徑】

node C:\Users\Administrator\Desktop\mkdirSync.js

結果如圖:C:\Users\Administrator\newDir
在這里插入圖片描述
創建多個目錄

const fs = require('fs');try {// 遞歸創建一個嵌套目錄 'parent/child/grandchild'fs.mkdirSync('parent/child/grandchild', { recursive: true });console.log('目錄遞歸創建成功');
} catch (err) {console.error('創建目錄時出錯:', err);
}

寫完代碼后,需要在terminal控制臺輸入指令:node 【 js文件的路徑】

node C:\Users\Administrator\Desktop\mkdirSync.js

3.fs.rmdir():刪除空目錄。異步。

語法格式:

fs.rmdir(path[, options], callback)

參數解讀:
參數1:必選參數,需要指定一個文件路徑的字符串,表示要刪除的路徑。
參數2:可選參數,默認為 false。
參數3:必選參數,回調函數。

// 1.導入fs模塊
const fs = require('fs');// 要刪除的目錄路徑
const dirPath = './test';fs.rmdir(dirPath, (err) => {if (err) {if (err.code === 'ENOENT') {console.log('目錄不存在');} else if (err.code === 'ENOTEMPTY') {console.log('目錄不為空,無法刪除');} else {console.error('刪除目錄時出錯:', err);}} else {console.log('目錄刪除成功');}
});

寫完代碼后,需要在terminal控制臺輸入指令:node 【 js文件的路徑】

node C:\Users\Administrator\Desktop\learning\rmdir.js

4. fs.rmdirSync():刪除空目錄。同步。

語法格式:

fs.rmdirSync(path[, options])

參數解讀:
參數1:必選參數,文件夾路徑
參數2:可選參數,options對象或編碼字符串

同步進行的就不能用回調函數觀察數據是否成功,所有用try catch來捕獲問題

const fs = require('fs');// 要刪除的目錄路徑
const dirPath = 'emptyDir';try {fs.rmdirSync(dirPath);console.log('目錄刪除成功');
} catch (err) {if (err.code === 'ENOENT') {console.log('目錄不存在');} else if (err.code === 'ENOTEMPTY') {console.log('目錄不為空,無法刪除');} else {console.error('刪除目錄時出錯:', err);}
}

寫完代碼后,需要在terminal控制臺輸入指令:node 【 js文件的路徑】

node C:\Users\Administrator\Desktop\rmdirSync.js

5. fs.rm()(Node.js 14.4+):遞歸刪除目錄及內容。

語法格式:

fs.rm(path, options, callback);

刪除單個文件

// 1.導入fs模塊
const fs = require('fs');
const filePath = 'example.txt';// 2.刪除文件
// 參數1: 文件路徑
// 參數2: 回調函數
fs.rm(filePath, (err) => {if (err) {console.error('刪除文件時出錯:', err);} else {console.log('文件刪除成功');}
});

寫完代碼后,需要在terminal控制臺輸入指令:node 【 js文件的路徑】

node C:\Users\Administrator\Desktop\learning\rm.js

遞歸刪除非空目錄

const fs = require('fs');const dirPath = 'exampleDir';
// 參數1: 目錄路徑
// 參數2: 配置對象
// recursive: 是否遞歸刪除子目錄和文件
// force: 是否強制刪除
// 參數3: 回調函數
fs.rm(dirPath, { recursive: true, force: true }, (err) => {if (err) {console.error('刪除目錄時出錯:', err);} else {console.log('目錄及其子目錄和文件刪除成功');}
});

寫完代碼后,需要在terminal控制臺輸入指令:node 【 js文件的路徑】

node C:\Users\Administrator\Desktop\learning\rm.js

6. fs.readdir():獲取目錄下的文件和子目錄列表。

語法格式:

fs.open(path, flags[, mode], callback)

參數解釋:
參數1: 必選參數,文件路徑。
參數2: 必選參數,打開文件的方式讀寫
參數3: 可選參數,設置文件模式(權限),默認為 0666(可讀寫)
參數4: 必選參數,回調函數。帶有兩個參數如:callback(err, fd)

// 導入文件系統模塊
const fs = require('fs');const directoryPath = '.'; // 當前目錄// 參數1: 目錄路徑
// 參數2: 配置對象
// withFileTypes: 是否返回fs.Dirent對象
// 參數3: 回調函數
fs.readdir(directoryPath, { withFileTypes: true }, (err, files) => {if (err) {console.error('讀取目錄時出錯:', err);return;}files.forEach((file) => {if (file.isDirectory()) {console.log(`${file.name} 是一個目錄`);} else {console.log(`${file.name} 是一個文件`);}});
});

寫完代碼后,需要在terminal控制臺輸入指令:node 【 js文件的路徑】

node C:\Users\Administrator\Desktop\readdir.js

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/72553.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/72553.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/72553.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

IP風險度自檢,互聯網的安全“指南針”

IP地址就像我們的網絡“身份證”,而IP風險度則是衡量這個“身份證”安全性的重要指標。它關乎著我們的隱私保護、賬號安全以及網絡體驗,今天就讓我們一起深入了解一下IP風險度。 什么是IP風險度 IP風險度是指一個IP地址可能暴露用戶真實身份或被網絡平臺…

【軟考-架構】5.3、IPv6-網絡規劃-網絡存儲-補充考點

?資料&文章更新? GitHub地址:https://github.com/tyronczt/system_architect 文章目錄 IPv6網絡規劃與設計建筑物綜合布線系統PDS💯考試真題第一題第二題 磁盤冗余陣列網絡存儲技術其他考點💯考試真題第一題第二題 IPv6 網絡規劃與設計…

數據結構------線性表(順序表)

一、線性表順序存儲詳解 (一)線性表核心概念 1. 結構定義 // 數據元素類型 typedef struct person {char name[32];char sex;int age;int score; } DATATYPE;// 順序表結構 typedef struct list {DATATYPE *head; // 存儲空間基地址int tlen; …

SVN學習筆記

svn:版本控制軟件 解決:1.協作開發 2.遠程開發 3.版本回退 服務端軟件: VisualSVN http://www.visualsvn.com 客戶端軟件:Tortoisesvn http://tortoisesvn.net/downloads 1.checkout(檢出) 第一查更新數據到本地, 2.update&#xf…

uniapp-x js 限制

1.String(str) 不允許&#xff0c;android模擬室報錯&#xff0c;找不到String 2.JSON.parse不接受泛類型 export const genData function<T> (initData:T) : T {return JSON.parse<T>(JSON.stringify(initData))!;//不可以&#xff0c;必須明確類型 } error: …

PyTorch使用-張量的創建

文章目錄 張量的創建1. 安裝 PyTorch2. 基本創建方式2.1 torch.tensor 根據指定數據創建張量2.2. torch.Tensor 根據形狀創建張量, 其也可用來創建指定數據的張量2.3. 指定類型的張量創建2.3.1. torch.IntTensor&#xff1a;創建整數類型張量2.3.2. torch.FloatTensor&#xff…

基于asp.net實現的連鎖餐廳收銀系統[包運行成功+永久免費答疑輔導]

基于ASP.NET實現的連鎖餐廳收銀系統背景&#xff0c;可以從以下幾個方面進行闡述&#xff1a; 一、技術背景 ASP.NET框架的普及與優勢&#xff1a; ASP.NET是微軟開發的一種用于構建Web應用程序的框架&#xff0c;它基于.NET Framework&#xff0c;提供了豐富的類庫和開發工具…

PyTorch 深度學習實戰(11):強化學習與深度 Q 網絡(DQN)

在之前的文章中&#xff0c;我們介紹了神經網絡、卷積神經網絡&#xff08;CNN&#xff09;、循環神經網絡&#xff08;RNN&#xff09;、Transformer 等多種深度學習模型&#xff0c;并應用于圖像分類、文本分類、時間序列預測等任務。本文將介紹強化學習的基本概念&#xff0…

92.HarmonyOS NEXT開發學習路徑與最佳實踐總結:構建高質量應用

溫馨提示&#xff1a;本篇博客的詳細代碼已發布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下載運行哦&#xff01; HarmonyOS NEXT開發學習路徑與最佳實踐總結&#xff1a;構建高質量應用 文章目錄 HarmonyOS NEXT開發學習路徑與最佳實踐總結&#xff1a;構建高質…

HarmonyOS-應用程序框架基礎

應用程序框架與應用模型的區別 應用框架可以看做是應用模型的一種實現方式&#xff0c;開發人員可以用應用模型來描述應用程序的結構和行為的描述&#xff0c;然后使用應用程序框架來實現這些描述。 應用模型 應用模型是一個應用程序的模型&#xff0c;它是一種抽象的描述&a…

審批工作流系統xFlow

WorkFlow-審批流程系統 該項目為完全開源免費項目 可用于學習或搭建初始化審批流程系統 希望有用的小伙伴記得點個免費的star gitee倉庫地址 仿釘釘飛書工作審批流系統 介紹 前端技術棧: vue3 ts vite arcodesign eslint 后端技術棧:springbootspring mvc mybatis mavenmysq…

數據傳輸對象 DTO

1. DTO 數據傳輸對象&#xff08;DTO, Data Transfer Object&#xff09;是一種設計模式&#xff0c;用于在不同系統或應用層之間封裝和傳輸數據。它通常用于解耦領域模型&#xff08;如數據庫實體&#xff09;和外部接口&#xff08;如API請求/響應&#xff09;&#xff0c;避…

本地算力部署大模型詳細流程(二)

1、前景回顧 上一篇我們通過ollama本地部署了一個DeepSeek&#xff0c;因為沒有前端操作頁面&#xff0c;我們只能使用cmd的方式和deepseek對話體驗感并不是很好&#xff0c;下面我們通過Docker部署一個前端頁面&#xff08;Open WebUI&#xff09; Open WebUI地址&#xff1a;…

django+vue3實現前后端大文件分片下載

效果&#xff1a; 大文件分片下載支持的功能&#xff1a; 展示目標文件信息提高下載速度&#xff1a;通過并發請求多個塊&#xff0c;可以更有效地利用網絡帶寬斷點續傳&#xff1a;支持暫停后從已下載部分繼續&#xff0c;無需重新開始錯誤恢復&#xff1a;單個塊下載失敗只…

matlab中如何集成使用python

在 MATLAB 中集成使用 Python 可以通過調用 Python 腳本或函數來實現。MATLAB 提供了 py 模塊來直接調用 Python 代碼。以下是一個簡單的示例&#xff0c;展示如何在 MATLAB 中調用 Python 函數。 示例&#xff1a;在 MATLAB 中調用 Python 函數 1. 編寫 Python 函數 首先&a…

ICMP、UDP以及IP、ARP報文包的仲裁處理

在之前的章節中&#xff0c;筆者就UDP、ICMP、IP、ARP、MAC層以及巨型幀等做了詳細介紹以及代碼實現及仿真&#xff0c;從本章節開始&#xff0c;筆者將就各個模塊組合在一起&#xff0c;實現UDP協議棧的整體收發&#xff0c;在實現模塊的整體組合之前&#xff0c;還需要考慮一…

【大模型學習】第十九章 什么是遷移學習

目錄 1. 遷移學習的起源背景 1.1 傳統機器學習的問題 1.2 遷移學習的提出背景 2. 什么是遷移學習 2.1 遷移學習的定義 2.2 生活實例解釋 3. 技術要點與原理 3.1 遷移學習方法分類 3.1.1 基于特征的遷移學習(Feature-based Transfer) 案例說明 代碼示例 3.1.2 基于…

基于大模型的分泌性中耳炎全流程預測與治療管理研究報告

目錄 一、引言 1.1 研究背景與意義 1.2 研究目的與目標 1.3 研究方法與創新點 二、分泌性中耳炎概述 2.1 疾病定義與特征 2.2 發病原因與機制 2.3 疾病危害與影響 三、大模型技術原理與應用現狀 3.1 大模型基本原理 3.2 在醫療領域的應用案例 3.3 選擇大模型預測分…

【NLP 38、實踐 ⑩ NER 命名實體識別任務 Bert 實現】

去做具體的事&#xff0c;然后穩穩托舉自己 —— 25.3.17 數據文件&#xff1a; 通過網盤分享的文件&#xff1a;Ner命名實體識別任務 鏈接: https://pan.baidu.com/s/1fUiin2um4PCS5i91V9dJFA?pwdyc6u 提取碼: yc6u --來自百度網盤超級會員v3的分享 一、配置文件 config.py …

藍橋杯學習-11棧

11棧 先進后出 例題–藍橋19877 用數組來設置棧 1.向棧頂插入元素--top位置標記元素 2.刪除棧頂元素--top指針減減 3.輸出棧頂元素--輸出top位置元素使用arraylist import java.util.ArrayList; import java.util.Scanner;public class Main {public static void main(Str…