模組路徑
path 模組是一個核心模組,它提供了一些工具函數來處理檔案和目錄的路徑。它不會檢查路徑是否存在或是否為有效路徑,而是只提供了處理路徑的方法
path 模組提供的方法很多,最常用的是:
- join():將給定的路徑片段連接在一起,並處理成標準的路徑格式。
- resolve():將路徑或路徑片段的序列解析為一個絕對路徑。
- basename():返迴路徑中路徑的最後一部分。
- dirname():傳回指定路徑的目錄名稱。
- extname():傳迴路徑中檔案的副檔名。
以下是這些方法的範例程式碼:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16const path = require('path');
// connect path segments using the platform-specific separator as a delimiter,
console.log(path.join('/usr', 'local', 'bin')); // output: /usr/local/bin
// resolve a sequence of paths or path segments into an absolute path
console.log(path.resolve('/foo/bar', './baz')); // output: /foo/bar/baz
// return the last portion of a path
console.log(path.basename('/foo/bar/baz')); // output: baz
// return the directory name of a path
console.log(path.dirname('/foo/bar/baz')); // output: /foo/bar
// return the extension of the path, from the last '.' to end of string in the last portion of the path
console.log(path.extname('/foo/bar/baz.txt')); // output: .txt
除了上述方法,path 模組還提供了許多其他的方法,如normalize()、delimiter、posix、win32 等等,用於處理路徑的規範化、路徑分隔符號、路徑格式的處理等等。這些方法在實際開發中也常用到。
path 模組為我們處理路徑提供了許多方便的工具函數,可以讓我們更方便地處理檔案和目錄路徑,是開發中不可或缺的工具之一。
靜態函數
normalize
標準化路徑,處理路徑中父目錄等訊息
1static String path.normalize(String path);
呼叫參數:
- path: String, 給定的未處理的路徑
回傳結果:
- String, 返回經過處理的路徑
basename
查詢路徑中的檔案名稱,若指定副檔名,則自動取消符合的副檔名
1
2static String path.basename(String path,
String ext = "");
呼叫參數:
- path: String, 給定查詢的路徑
- ext: String, 指定副檔名,若檔案名稱中有符合條件的副檔名,將自動取消
回傳結果:
- String, 回傳檔案名稱
extname
查詢路徑中的檔案副檔名
1static String path.extname(String path);
呼叫參數:
- path: String, 給定查詢的路徑
回傳結果:
- String, 返回得到的擴展名
format
嘗試將一個物件格式化為路徑
1static String path.format(Object pathObject);
呼叫參數:
- pathObject: Object, 對象
回傳結果:
- String, 返回格式化後的路徑
pathObject 支援的參數如下:
1
2
3
4
5
6
7{
"root": "/",
"dir": "/a/b",
"base": "c.ext",
"ext": ".ext",
"name": "c"
}
parse
解析路徑為路徑對象
1static NObject path.parse(String path);
呼叫參數:
- path: String, 路徑
回傳結果:
- NObject, 傳回pathObject 對象
dirname
查詢路徑中的目錄路徑
1static String path.dirname(String path);
呼叫參數:
- path: String, 給定查詢的路徑
回傳結果:
- String, 返回得到的目錄的路徑
fullpath
轉換給定路徑為全路徑
1static String path.fullpath(String path);
呼叫參數:
- path: String, 給定轉換的路徑
回傳結果:
- String, 返回轉換的全路徑
isAbsolute
識別給定的路徑是否為絕對路徑
1static Boolean path.isAbsolute(String path);
呼叫參數:
- path: String, 給定需要辨識的路徑
回傳結果:
- Boolean, 是絕對路徑則回傳true
join
合併一系列路徑成為單一路徑
1static String path.join(...ps);
呼叫參數:
- ps: ..., 一個或多個相關的路徑
回傳結果:
- String, 返回得到的新路徑
resolve
合併一系列路徑成為絕對路徑
1static String path.resolve(...ps);
呼叫參數:
- ps: ..., 一個或多個相關的路徑
回傳結果:
- String, 返回得到的新路徑
relative
求_from 到to 的相對路徑
1
2static String path.relative(String _from,
String to);
呼叫參數:
- _from: String, 來源路徑
- to: String, 目標路徑
回傳結果:
- String, 返回得到的相對路徑
toNamespacedPath
轉換成namespace-prefixed 路徑。只在windows 有效,其他系統直接回傳。
1static Value path.toNamespacedPath(Value path = undefined);
呼叫參數:
- path: Value, 給定的路徑。
回傳結果:
- Value, 返回得到的新路徑
see: https://msdn.microsoft.com/library/windows/desktop/aa365247(v=vs.85).aspx#namespaces
靜態屬性
sep
String, 查詢目前作業系統的路徑分割字符,posix 回傳'/', windows 返回'\'
1static readonly String path.sep;
delimiter
String, 查詢目前作業系統的多路徑組合字符,posix 回傳':', windows 返回';'
1static readonly String path.delimiter;
posix
Object, posix 實現,參見path_posix
1static readonly Object path.posix;
win32
Object, windows 實現,參見path_win32
1static readonly Object path.win32;