這篇文章帶大家了解一下node中的fs檔案系統模組和path路徑模組,希望對大家有幫助!

fs檔案系統模組
#fs 模組是Node.js 官方提供的、用來操作文件的模組。它提供了一系列的方法和屬性,用來滿足使用者對檔案的操作需求。
- fs.readFile() 方法,用來讀取指定檔案中的內容
- fs.writeFile() 方法,用來寫入內容如果要在JavaScript 程式碼中,使用fs 模組來操作文件,則需要使用如下的方式先導入它:
1 | const fs = reuire('fs')
|
登入後複製
讀取指定文件中的內容
1. fs.readFile()的語法格式
使用fs.readFile() 方法,可以讀取指定檔案中的內容,語法格式如下:
1 | fs.readFile(path[, options], callback)
|
登入後複製
- 參數1:必選參數,需要指定一個檔案路徑的字串,表示要讀取哪個路徑對應的檔案。
- 參數2:可選參數,表示以什麼編碼格式讀取檔案。
- 參數3:必選參數,檔案讀取完成後,透過回呼函數拿到讀取的結果。
2. fs.readFile()的範例程式碼
#以utf8 的格式,讀取指定檔案的內容,並列印err 和data 的值:
1 2 3 4 5 6 | const fs = require ('fs');
fs.readFile('hello.txt', 'utf-8', (err, data) => {
if (err) return console.log(err);
console.log(data);
});
|
登入後複製
向指定的檔案中寫入內容
#1. fs.writeFile()的語法格式
使用fs.writeFile() 方法,可以在指定的檔案中寫入內容,語法格式如下:
1 | fs.writeFile(file, data[, options], callback)
|
登入後複製
- 參數1:必選參數,需要指定一個檔案路徑的字串,表示要文件的存放路徑。
- 參數2:必選參數,表示要寫入的內容。
- 參數3:可選參數,表示以什麼格式寫入檔案內容,預設值是utf8。
- 參數4:必選參數,檔案寫入完成後的回呼函數。
2. fs.writeFile()的範例程式碼
#
1 2 3 4 5 6 | const fs = require ('fs');
fs.writeFile('./hello.txt', 'hello node', (err) => {
if (err) return console.log(err);
console.log('写入成功');
});
|
登入後複製
讀取指定目錄下所有檔案的名稱
1.fs.readdir()的語法格式
#使用fs.readdir() 方法,可以讀取指定目錄下所有檔案的名稱,語法格式如下:
1 | fs.readdir(path[, options], callback)
|
登入後複製
- 參數1:必選參數,表示要讀取哪個目錄下的檔案名稱清單。
- 參數2:可選參數,以什麼格式讀取目錄下的檔案名稱,預設值是utf8。
- 參數3:必選參數,讀取完成以後的回呼函數。
2.fs.readdir()的範例程式碼
#透過fs.readdir() 方法,可以讀取指定目錄下,所有檔案的名稱:
1 2 3 4 5 6 | const fs = require ('fs');
fs.readdir('./', (err, data) => {
if (err) return console.log(err);
console.log(data);
});
|
登入後複製
fs 模組-路徑動態拼接的問題
#在使用fs 模組操作檔時,如果提供的操作路徑是以. / 或../ 開頭的相對路徑時,很容易出現路徑動態拼接錯誤的問題。這是因為程式碼在運作的時候,會以執行node 指令時所處的目錄,動態拼接出被操作檔的完整路徑。
解決方案:使用fs 模組操作檔案時,直接提供絕對路徑,不要提供./ 或 ../ 開頭的相對路徑,從而防止路徑動態拼接的問題。
注意:使用__dirname 取得目前檔案所在的絕對路徑
1 2 3 4 5 6 7 8 | const fs = require ('fs');
let filepath = __dirname +'/hello.txt'
fs.readFile(filepath, 'utf-8', (err, data) => {
if (err) return console.log(err);
console.log(data);
});
|
登入後複製
#path路徑模組
path 模組是Node.js 官方提供的、用來處理路徑的模組。它提供了一系列的方法和屬性,用來滿足使用者對路徑的處理需求。
- path.join() 方法,用來將多個路徑片段拼接成一個完整的路徑字串
- path.basename() 方法,用來從路徑字串中,將檔案名稱解析出來
如果要在JavaScript 程式碼中,使用path 模組來處理路徑,則需要使用以下的方式先匯入它:
1 | const path = require ('path')
|
登入後複製
#路徑拼接
path.join()的語法格式
使用path.join() 方法,可以使用多個路徑片段拼接為完整的路徑字串,語法格式如下:
使用path.join() 方法,可以把多個路徑片段拼接為完整的路徑字串:
1 2 3 4 5 6 7 8 | const path = require ('path');
console.log( path.join( 'a' , 'b' , 'c' ) );
console.log( path.join( 'a' , '/b/' , 'c' ) );
console.log( path.join( 'a' , '/b/' , 'c' , 'index.html' ) );
console.log( path.join( 'a' , 'b' , '../c' , 'index.html' ) );
console.log(__dirname);
console.log( path.join(__dirname, '成绩.txt' ) );
|
登入後複製
取得路徑中的檔案名稱
1.path.basename()的語法格式
使用path.basename( ) 方法,可以取得路徑中的最後一部分,經常透過這個方法取得路徑中的檔案名,語法格式如下:
1 | path. basename (path[,ext])
|
登入後複製
- path 必选参数,表示一个路径的字符串
- ext 可选参数,表示可选的文件扩展名
- 返回: 表示路径中的最后一部分
2.path.basename()的代码示例
使用 path.basename() 方法,可以从一个文件路径中,获取到文件的名称部分:
1 2 3 4 5 | console.log( path. basename ('index.html') );
console.log( path. basename ('a/b/c/index.html') );
console.log( path. basename ('a/b/c/index.html?id=3') );
console.log(path. basename ('/api/getbooks'))
|
登入後複製
获取路径中的文件扩展名
1.path.extname()的语法格式
使用 path.extname() 方法,可以获取路径中的扩展名部分,语法格式如下:
- path 必选参数,表示一个路径的字符串
- 返回: 返回得到的扩展名字符串
使用 path.extname() 方法,可以获取路径中的扩展名部分
1 2 3 4 5 | console.log( path.extname('index.html') );
console.log( path.extname('a.b.c.d.html') );
console.log( path.extname('asdfas/asdfa/a.b.c.d.html') );
console.log( path.extname('adf.adsf') );
|
登入後複製
原文地址:https://juejin.cn/post/7088650568150810638
作者:L同学啦啦啦
更多node相关知识,请访问:nodejs 教程!
以上是聊聊node中的fs模組、path模組的詳細內容。更多資訊請關注PHP中文網其他相關文章!