fs讀取目錄、文件

fs讀取文件

process.cwd() 是 Node.js 中的一個方法,它返回 Node.js 進程的當前工作目錄。這個工作目錄通常是啟動 Node.js 進程時所在的目錄。

const fs = require('fs');
const path = require('path');// 讀取指定目錄
const configPath = path.join(process.cwd(), 'config.json');
// const configPath = path.join(process.cwd(), 'src/config.json');
// 讀取文件
const config = fs.readFileSync(configPath, 'utf-8');
console.log(config);

fs 讀取目錄

const fs = require('fs');
const path = require('path');// 指定要讀取的目錄路徑
const directoryPath = './exampleDirectory';// 使用 fs.readdir() 讀取目錄
fs.readdir(directoryPath, (err, files) => {if (err) {console.error(`讀取目錄時發生錯誤: ${err}`);return;}// 文件數組包含了目錄中的所有文件和子目錄files.forEach(file => {console.log(file);});
});// 異步/等待版本的讀取目錄
// (注意:此示例使用了 async/await,因此需要在異步函數中使用)
async function readDirectoryAsync() {try {const files = await fs.promises.readdir(directoryPath);files.forEach(file => {console.log(file);});} catch (err) {console.error(`異步讀取目錄時發生錯誤: ${err}`);}
}// 調用異步函數
readDirectoryAsync();

fs判斷是否為文件夾

const fs = require('fs');const path = './example/folder'; // 要檢查的路徑fs.stat(path, (err, stats) => {if (err) {console.error('發生錯誤:', err);return;}if (stats.isDirectory()) {console.log('這是一個文件夾');} else {console.log('這不是一個文件夾');}
});

fs 獲取文件名

const fs = require('fs');
const path = require('path');// 假設你有一個包含路徑的文件名字符串
const filePath = '/example/directory/test.txt';// 使用 path.basename 獲取文件名
const fileName = path.basename(filePath);console.log(fileName); // 輸出: test.txt

獲取文件擴展名

const path = require('path');// 假設你有一個包含路徑的文件名字符串
const filePath = '/example/directory/牡蠣.txt';// 使用 path.extname 獲取文件擴展名
const fileExtension = path.extname(filePath);console.log(fileExtension); // 輸出: .txt

實踐:

const fs = require('fs');
const path = require('path');// 使用 fs.readdir() 讀取目錄
const readdir = (directoryPath, isRoot) => fs.readdir(directoryPath, (err, files) => {if (err) {console.error(`讀取目錄時發生錯誤: ${err}`);return;}// 文件數組包含了目錄中的所有文件和子目錄files.forEach(file => {const pPath = isRoot ? path.join(process.cwd(), `${directoryPath}/${file}`) : `${directoryPath}/${file}`;fs.stat(pPath, (err, stats) => {if (err) {console.error('發生錯誤:', err);return;}if (stats.isDirectory()) {console.log('文件夾:', pPath);readdir(pPath);} else {const readFile = fs.readFileSync(pPath, 'utf-8');console.log(`------>READ FILE ${pPath} START:<------\n`, readFile, `\n------>READ FILE ${pPath} END<------\n`);}})});
});readdir('./src', true);

運行腳本即可

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

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

相關文章

StarRocks實戰——貝殼找房數倉實踐

目錄 前言 一、StarRocks在貝殼的應用現狀 1.1 歷史的數據分析架構 1.2 OLAP選型 1.2.1 離線場景 1.2.2 實時場景 1.2.3 StarRocks 的引入 二、StarRocks 在貝殼的分析實踐 2.1 指標分析 2.2 實時業務 2.3 可視化分析 三、未來規劃 3.1 StarRocks集群的穩定性 3…

PMP考試培訓費用多少錢?

PMP考試的相關費用包括報名費用、培訓費用和證書續證費用三個部分。 一、PMP考試報名費用&#xff1a; 首次報考費用為3900元&#xff0c;如果未通過考試可以在英文報名有效期內進行補考報名&#xff0c;補考費用為2500元。 付費方式是在項目管理學會官方網站上提交報考資料…

企業數字化轉型的第一步:由被動多云向主動多云轉變

隨著經濟環境、市場形勢、技術發展、用戶需求等諸多因素的變化&#xff0c;數字化轉型為企業進一步提升效率和競爭力、提供更加豐富的個性化產品和服務、進行業務場景創新、探尋新的增長機會和運營模式提供了嶄新的途徑。越來越多的企業意識到&#xff0c;數字化轉型已不是企業…

第1篇 Linux Docker安裝rabbitmq

Docker安裝RabbitMq 1、搜索rabbitmq鏡像 docker search rabbitmq2、下載rabbitmq鏡像 docker pull rabbitmq3、運行rabbitmq服務 docker run -d --name rabbitmq --restart always -p 15672:15672 -p 5672:5672 rabbitmq4、訪問rabbitmq http://192.168.1.x:15672 5、rab…

亞信安慧AntDB:打破數據孤島,實現實時處理

AntDB數據庫以其獨特的創新能力在分布式數據庫領域引領潮流。其中&#xff0c;融合統一與實時處理是其兩大核心創新能力&#xff0c;為其贏得廣泛關注與贊譽。融合統一意味著AntDB能夠將多種不同類型的數據庫融合為一體&#xff0c;實現數據的統一管理與處理&#xff0c;極大地…

電視盒子什么品牌好?資深數碼粉強推口碑電視盒子推薦

我對各類數碼產品是非常熟悉的&#xff0c;尤其是電視盒子&#xff0c;用過超十五款了&#xff0c;涵蓋了各個主流品牌&#xff0c;最近看到很多朋友在討論不知道電視盒子什么品牌好&#xff0c;我這次要來分享的就是口碑最好的五款電視盒子推薦給各位不懂如何選電視盒子的新手…

AI、AIGC、AGI、ChatGPT它們的區別?

今天咱們聊點熱門話題&#xff0c;來點科普時間——AI、AIGC、AGI和ChatGPT到底是啥&#xff1f;這幾個詞聽起來好像挺神秘的&#xff0c;但其實它們就在我們生活中。讓我們一起探索這些術語的奧秘&#xff01; AI&#xff08;人工智能&#xff09;&#xff1a;先說說AI&#…

數倉技術選型特點

高性能&#xff1a;用全并行的MPP架構數據庫&#xff0c;業務數據被分散存儲在多個節點上&#xff0c;數據分析任務被推送到數據所在位置就近執行&#xff0c;并行地完成大規模的數據處理工作&#xff0c;實現對數據處理的快速響應。 易擴展&#xff1a;Shared-Nothing開放架構…

電梯物聯網之梯控相機方案-防止電瓶車進電梯

梯控現狀 隨著電梯產品在智能化建筑的日益普及,對于電梯的智能化管理 安全性需求 的要求越來越迫切。尤其今年來隨著電瓶車的大量普及&#xff0c;發起多起樓道、轎廂電瓶車著火惡性事件&#xff0c; 造成了極大的社會 負面影響。控制電瓶車進入單元門&#xff0c;樓道以及電梯…

Vue官網“食用指南”

把Vue官網當做一個工具來用&#xff0c;有問題&#xff0c;先來官網查一查。 官網中常用的板塊 官網&#xff1a;https://cn.vuejs.org/上手后&#xff0c;最常用的模塊是【快速上手】【API】。所以務必要知道這兩個模塊在哪里&#xff0c;怎么使用。![image.png](https://img…

/proc/cpuinfo文件內容詳解

/proc/cpuinfo 文件包含了有關系統 CPU 的信息&#xff0c;每一行代表一個屬性及其對應的值。以下是一些常見的屬性及其含義&#xff1a; 1. processor&#xff1a;表示 CPU 的物理編號&#xff0c;通常從 0 開始遞增。 2. vendor_id&#xff1a;CPU 廠商的名稱&#xff0c;如…

藍橋杯 砝碼稱重 dp/dfs

題目鏈接&#xff1a; https://www.lanqiao.cn/problems/1447/learning/?subject_code1&group_code4&match_num12&match_flow1&origincup 思想&#xff1a;dfs暴力枚舉過一半的分 代碼&#xff1a; #include<bits/stdc.h> using namespace std;#def…

快速開發一個鴻蒙的頁面

文章目錄 前言常用組件快速開啟簡單的鴻蒙頁面總結 一、前言 鴻蒙要想快速上手&#xff0c;那么就需要對基礎的組件使用比較熟悉&#xff0c;這里就羅列開發中常見的基礎組件的使用。 只要是寫android的&#xff0c;對于這些組件的使用還是能很快上手的&#xff0c;只要多多…

01-prometheus監控系統-安裝部署prometheus

一、準備環境 主機名ip配置prometheus-server3110.0.0.311核1g-20GBprometheus-server3210.0.0.311核1g-20GBprometheus-server3310.0.0.311核1g-20GB 二、下載/上傳軟件包 1&#xff0c;軟件包地址 這里給大家準備了百度云盤的安裝包&#xff1b; 鏈接&#xff1a;https:/…

FRM模型十二:極值理論

目錄 極值理論介紹GEVPOT 代碼實現 極值理論介紹 在風險管理中&#xff0c;將事件分為高頻高損、高頻低損、低頻高損、低頻低損。其中低頻高損是一種非常棘手的損失事件&#xff0c;常出現在市場大跌、金融體系崩潰、金融危機以及自然災害等事件中。 由于很難給極端事件一個準…

Spring 學習記錄

Spring 學習記錄 1. Spring和SpringFrameWork1.1 廣義的Spring2.1 狹義的Spring2.3 SpringFrameWork / Spring框架圖 2. Spring IOC容器(即上圖中的Core Container)2.1 相關概念 (IOC DI 容器 組件)2.2 Spring IOC容器的作用2.3 Spring IOC容器接口和具體實現類 3. Spring IOC …

flask 數據庫遷移報錯 Error: No such command ‘db‘.

初學FLASK&#xff0c;使用pycharm的terminal 啟動&#xff0c;實現數據庫遷移 文件結構 項目啟動文件不在一級目錄pycharm>terminal啟動 由于自己初入 python flask 很多東西并不懂&#xff0c;只能依葫蘆畫瓢&#xff0c;使用如下命令,輸入完第一行命令執行沒有任何錯誤…

素數合集(C語言版)

目錄 判斷素數函數 題目 素數個數 素數求和 最大的素數

微信小程序 ---- 慕尚花坊 購物車

購物車 01. 購物車-封裝購物車接口 API 思路分析&#xff1a; 為了方便后續進行購物車模塊的開發&#xff0c;我們在這一節將購物車所有的接口封裝成接口 API 函數 落地代碼&#xff1a; import http from ../utils/http/*** description 獲取購物車列表數據* returns Pro…

Vue ElementUI 修改消息提示框樣式—messageBox 的大小

在窄屏模式下&#xff08;移動端或pda&#xff09;&#xff0c;提示框的寬度太寬&#xff0c;會出現顯示不完全的問題。 應當如何修改 ElementUI 的樣式呢&#xff1f; open() {this.$confirm(window.vm.$i18n.t("tips.conLogOut"),window.vm.$i18n.t("tips.tip…