使用Node操作文件夾的常用API
一.寫在前面
在Node系列的第一篇文章中我們講解了Node的基本知識(shí)和文件的讀寫操作,這篇文章我們將學(xué)習(xí)Node對(duì)文件夾的操作,當(dāng)我們學(xué)習(xí)完文件夾的操作后結(jié)合文件的操作我們就可以真正的通過Node在日常的工作生活中解決許多和文件相關(guān)的問題,這篇文章我們將首先講解文件夾操作的幾個(gè)API,然后完成一下最常見的文件夾遞歸的操作。
二.Node文件夾操作常用API
- 使用Node異步創(chuàng)建文件夾:
const fs = require("fs");
fs.mkdir("./code",(err,file)=>{
if(err){
console.log("文件夾創(chuàng)建失敗");
}else{
console.log(file);
}
})
- 使用Node同步創(chuàng)建文件夾(推薦使用異步操作)
const fs = require("fs");
fs.mkdirSync("./aaa");
- 獲取文件夾中的內(nèi)容,讀取到的是文件夾中內(nèi)容名稱的字符串。
const fs = require("fs");
fs.readdir("./code",(err,fileList)=>{
if(err){
console.log("文件夾讀取失敗");
}else{
console.log(fileList);
}
})

- 讀取文件夾獲取文件夾中的信息:需要添加一個(gè)屬性
withFileTypes:true就可以獲取文件夾中的信息。
const fs = require("fs");
fs.readdir("./code",{withFileTypes:true},(err,fileList)=>{
if(err){
console.log("文件夾讀取失敗");
}else{
console.log(fileList);
}
})

- 對(duì)文件夾進(jìn)行重命名:第一個(gè)參數(shù)是當(dāng)前文件名,第二個(gè)參數(shù)是新的文件名。
const fs = require("fs");
fs.rename("./aaa","./why",(err,flag)=>{
if(err){
console.log("文件重命名失敗");
}else{
console.log("文件重命名成功");
}
})
三.遞歸獲取文件夾中的信息
我們?cè)谏鲜鲞M(jìn)行文件夾的操作都是基于一層文件夾的,但是在實(shí)際的工作和生活中,文件夾往往是很多層的,如果我們?cè)诓恢牢募A有多少層的情況下如何獲取文件夾中的所有信息?答案就是遞歸,我們假設(shè)有一個(gè)文件夾,文件夾中嵌套了很多文件夾和文件,現(xiàn)在需要你將這個(gè)文件夾中的所有的信息全部讀取處理。

const fs = require("fs");
function readDictionary(dir){
fs.readdir(dir,{withFileTypes:true},(err,fileList)=>{
fileList.forEach(item=>{
if(item.isDirectory()){
readDictionary(`${dir}/${item.name}`)
}else{
console.log(item.name);
}
})
})
}
readDictionary('./code')

四.總結(jié)
這篇文章主要講解的是Node中常見的文件夾操作,包括文件夾的新建(同步操作/異步操作),文件夾中信息的讀取,文件夾的重命名,這幾個(gè)API是最文件夾操作中常用的幾個(gè)API,如果之后在開發(fā)中遇到需要使用其他API的時(shí)候可以對(duì)應(yīng)的去查詢,在文章的最后我們嘗試著寫了一下文件夾操作中經(jīng)典操作---遞歸讀取,這個(gè)操作在文件夾操作中比較常用,希望各位小伙伴能夠花點(diǎn)時(shí)間去掌握它。
以上就是使用Node操作文件夾的常用API的詳細(xì)內(nèi)容,更多關(guān)于Node操作文件夾的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Nodejs實(shí)現(xiàn)短信驗(yàn)證碼功能
使用Nodejs的開發(fā)者愈來越多,基于Nodejs的后臺(tái)開發(fā)也多了起來,像短信驗(yàn)證碼、短信群發(fā)、國(guó)際短信這些需求,完全可以采用第三方接口來實(shí)現(xiàn),云片就提供了這樣的接口2017-02-02
如何使用?Node.js?將?MongoDB?連接到您的應(yīng)用程序
NoSQL?數(shù)據(jù)庫(kù)對(duì)于處理大量分布式數(shù)據(jù)非常有用,我們可以在這個(gè)數(shù)據(jù)庫(kù)中存儲(chǔ)信息,對(duì)其進(jìn)行管理,這篇文章主要介紹了使用?Node.js?將?MongoDB?連接到您的應(yīng)用程序,需要的朋友可以參考下2022-09-09
Linux?Ubuntu升級(jí)nodejs版本的簡(jiǎn)單步驟
Node.js是一種對(duì)應(yīng)于JavaScript運(yùn)行時(shí)環(huán)境的編程語言,這篇文章主要給大家介紹了關(guān)于Linux?Ubuntu升級(jí)nodejs版本的簡(jiǎn)單步驟,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-12-12
如何解決安裝websocket還是報(bào)錯(cuò)Cannot find module'ws&apos
這篇文章主要介紹了如何解決安裝websocket還是報(bào)Cannot find module'ws'問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02
淺析node連接數(shù)據(jù)庫(kù)(express+mysql)
Node是一個(gè)Javascript運(yùn)行環(huán)境(runtime)。實(shí)際上它是對(duì)Google V8引擎進(jìn)行了封裝。V8引 擎執(zhí)行Javascript的速度非??欤阅芊浅:?。Node對(duì)一些特殊用例進(jìn)行了優(yōu)化,提供了替代的API,使得V8在非瀏覽器環(huán)境下運(yùn)行得更好2015-11-11
Windows上安裝Node-RED的實(shí)現(xiàn)
Node-RED是一個(gè)用于物聯(lián)網(wǎng)編程的工具,提供了一個(gè)基于瀏覽器的編程環(huán)境和豐富的節(jié)點(diǎn)類型,本文就來介紹一下Windows上安裝Node-RED的實(shí)現(xiàn),感興趣的可以了解一下2025-02-02
用純Node.JS彈出Windows系統(tǒng)消息提示框?qū)嵗?MessageBox)
這篇文章主要介紹了用純Node.JS彈出Windows系統(tǒng)消息提示框?qū)嵗?MessageBox),非常具有實(shí)用價(jià)值,需要的朋友可以參考下2017-05-05

