Node路徑模組
Node.js的路徑模組提供了一些有用的功能來處理檔案路徑。
path
模組提供了許多非常有用的功能來存取和操作檔案系統。
不需要單獨安裝它。由於它是Node的核心部分,只需透過require
進行引用即可:
1 | const path = require('path') |
此模組提供了path.sep
來提供路徑分隔符號(在Windows上為\
,在Linux和macOS上為/
),以及path.delimiter
提供路徑分隔符(在Windows上為;
,在Linux和macOS上為:
)。
以下是path
的方法:
path.basename()
path.dirname()
path.extname()
path.isAbsolute()
path.join()
path.normalize()
path.parse()
path.relative()
path.resolve()
path.basename()
返回路徑的最後一部分。第二個參數可以過濾掉檔案的副檔名:
1 | require('path').basename('/test/something') //something |
path.dirname()
返回路徑的目錄部分:
1 | require('path').dirname('/test/something') // /test |
path.extname()
返回路徑的副檔名部分:
1 | require('path').extname('/test/something') // '' |
path.isAbsolute()
如果是絕對路徑則返回true
:
1 | require('path').isAbsolute('/test/something') // true |
path.join()
將兩個或多個路徑部分組合起來:
1 | const name = 'flavio' |
path.normalize()
當路徑包含相對位置符(.
或..
)或連續的斜線時,嘗試計算實際的路徑:
1 | require('path').normalize('/users/flavio/..//test.txt') ///users/test.txt |
path.parse()
將一個路徑解析為一個包含其組成部分的物件:
root
:根路徑dir
:從根路徑開始的目錄路徑base
:檔案名稱+副檔名name
:檔案名稱ext
:檔案的副檔名
範例:
1 | require('path').parse('/users/test.txt') |
結果:
1 | { |
path.relative()
接受兩個路徑作為參數,返回從第一個路徑到第二個路徑的相對路徑,基於當前工作目錄。
範例:
1 | require('path').relative('/Users/flavio', '/Users/flavio/test.txt') //'test.txt' |
path.resolve()
可以使用path.resolve()
來計算相對路徑的絕對路徑:
1 | path.resolve('flavio.txt') //'/Users/flavio/flavio.txt'(如果從我的家目錄運行) |
通過指定第二個參數,resolve
將使用第一個參數作為第二個參數的基礎:
1 | path.resolve('tmp', 'flavio.txt')//'/Users/flavio/tmp/flavio.txt'(如果從我的家目錄運行) |
如果第一個參數以斜線開頭,表示它是絕對路徑:
1 | path.resolve('/etc', 'flavio.txt')//'/etc/flavio.txt' |
tags: [“Node.js”, “path module”, “file system”, “file path”, “methods”]