David Yu Blog

Node.js | 常用Core Module(原生模組) - Path

Word count: 248Reading time: 1 min
2023/02/17

*path*主要是在進行 fs 檔案目錄之操作讀取寫入時,會遇到的字串轉換處理。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
const path = require('path');

/* normalize 協助拔除 `.`, `..`, `\\`,以及修正如 windows 作業系統的路徑表示符號 */
console.log(path.normalize('C:////temp\\\\/\\/\\/foo/bar'));
//print C:\temp\foo\bar

/* join 能將指定字串進行合併 */
console.log(path.join(__dirname,'index.html'));
//print L:\nodeDemo\index.html

/*
basename 取出字串之檔名
extname 取出字串之附檔名
dirname 取出字串之目錄路徑
*/

console.log(__filename);
console.log(path.basename(__filename));
console.log(path.extname(__filename));
console.log(path.dirname(__filename));
//print L:\nodeDemo\index.js
//print index.js
//print .js
//print L:\nodeDemo

補:

執行 Node 應用時,能透過 __filename 與 __dirname 全域變數來取得該應用程式所在之檔案名稱或目錄,對於需要找到相對路徑處理上有很大的幫助。

1
2
3
4
console.log(`
dirname 應用目錄 ${__dirname}
filename 檔案路徑 ${__filename}
`);
1
2
3
4
L:\nodeDemo>node .

dirname 應用目錄 L:\nodeDemo
filename 檔案路徑 L:\nodeDemo\index.js
CATALOG