使用Node操作文件夾的常用API
一.寫在前面
在Node系列的第一篇文章中我們講解了Node的基本知識和文件的讀寫操作,這篇文章我們將學(xué)習(xí)Node對文件夾的操作,當我們學(xué)習(xí)完文件夾的操作后結(jié)合文件的操作我們就可以真正的通過Node在日常的工作生活中解決許多和文件相關(guān)的問題,這篇文章我們將首先講解文件夾操作的幾個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);
}
})

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

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

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中常見的文件夾操作,包括文件夾的新建(同步操作/異步操作),文件夾中信息的讀取,文件夾的重命名,這幾個API是最文件夾操作中常用的幾個API,如果之后在開發(fā)中遇到需要使用其他API的時候可以對應(yīng)的去查詢,在文章的最后我們嘗試著寫了一下文件夾操作中經(jīng)典操作---遞歸讀取,這個操作在文件夾操作中比較常用,希望各位小伙伴能夠花點時間去掌握它。
以上就是使用Node操作文件夾的常用API的詳細內(nèi)容,更多關(guān)于Node操作文件夾的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
如何使用?Node.js?將?MongoDB?連接到您的應(yīng)用程序
NoSQL?數(shù)據(jù)庫對于處理大量分布式數(shù)據(jù)非常有用,我們可以在這個數(shù)據(jù)庫中存儲信息,對其進行管理,這篇文章主要介紹了使用?Node.js?將?MongoDB?連接到您的應(yīng)用程序,需要的朋友可以參考下2022-09-09
如何解決安裝websocket還是報錯Cannot find module'ws&apos
這篇文章主要介紹了如何解決安裝websocket還是報Cannot find module'ws'問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-02-02
淺析node連接數(shù)據(jù)庫(express+mysql)
Node是一個Javascript運行環(huán)境(runtime)。實際上它是對Google V8引擎進行了封裝。V8引 擎執(zhí)行Javascript的速度非常快,性能非常好。Node對一些特殊用例進行了優(yōu)化,提供了替代的API,使得V8在非瀏覽器環(huán)境下運行得更好2015-11-11
用純Node.JS彈出Windows系統(tǒng)消息提示框?qū)嵗?MessageBox)
這篇文章主要介紹了用純Node.JS彈出Windows系統(tǒng)消息提示框?qū)嵗?MessageBox),非常具有實用價值,需要的朋友可以參考下2017-05-05

