官網地址:https://nodejs.org/api/path.htmljavascript
功能:該函數將一個路徑序列或路徑片斷組合成一個絕對路徑;html
path.resolve([path1][, path2][, ...]) 從右向左依次拼接該路徑序列,直到構成一個絕對路徑。例如,輸入參數:/foo, /bar, baz, 調用函數path.resolve('/foo', '/bar', 'baz')後返回結果是 /bar/baz;java
若是處理完全部參數仍然沒有構成一個絕對路徑,就使用當前工做目錄的絕對路徑;結果返回的路徑是經normalized後的,尾隨斜線是沒有的,除非是根路徑;node
Zero-length path
segments are ignored.api
若是路徑序列中沒有可用的路徑片斷,該函數將返回當前工做目錄的絕對路徑;ide
例子:函數
path.resolve('/foo/bar', './baz') // Return: '/foo/bar/baz' path.resolve('/foo/bar', '/tmp/file/') // Return: '/tmp/file' path.resolve('wwwroot', 'static_files/png/', '../gif/image.gif') //若是當前工做目錄是/home/myself/node, //返回結果是: '/home/myself/node/wwwroot/static_files/gif/image.gif'
若是有任何參數不是字符串,將會拋出TypeError錯誤;spa
The path.join()
method joins all given path
segments together using the platform specific separator as a delimiter, then normalizes the resulting path.code
做用:該函數使用指定分隔符將參數中全部路徑片斷鏈接到一塊兒,並返回normalize後的結果路徑。orm
Zero-length path
segments are ignored. If the joined path string is a zero-length string then '.'
will be returned, representing the current working directory.
若是鏈接的參數長度爲0字符串,將會返回'.' , 表示當前工做目錄
例子:
1 path.join('/foo', 'bar', 'baz/asdf', 'quux', '..') 2 //Return: '/foo/bar/baz/asdf' 3 4 path.join('foo', {}, 'bar') 5 //throws TypeError:Arguments to path.join must be strings
若是參數中有任何路徑片斷不是字符串,將會拋出TypeError錯誤;
The path.normalize()
method normalizes the given path
, resolving '..'
and '.'
segments.
做用:標準化路徑,處理'..'和'.'
When multiple, sequential path segment separation characters are found (e.g. /
on POSIX and \
on Windows), they are replaced by a single instance of the platform specific path segment separator. 後綴分隔符將保留;
If the path
is a zero-length string, '.'
is returned, representing the current working directory.
若是path是長度爲0的字符串,將會返回'.' , 表示當前工做目錄
For example on POSIX:
1 path.normalize('/foo/bar//baz/asdf/quux/..') 2 // Returns: '/foo/bar/baz/asdf'
On Windows:
1 path.normalize('C:\\temp\\\\foo\\bar\\..\\') 2 //Returns: 'C:\\temp\\foo\\'
The path.format()
method returns a path string from an object. This is the opposite ofpath.parse()
.
When providing properties to the pathObject
remember that there are combinations where one property has priority over another:
pathObject.root
is ignored if pathObject.dir
is providedpathObject.ext
and pathObject.name
are ignored if pathObject.base
existsFor example, on POSIX:
1 // If `dir`, `root` and `base` are provided, 2 // `${dir}${path.sep}${base}` 3 // will be returned. `root` is ignored. 4 path.format({ 5 root: '/ignored', 6 dir: '/home/user/dir', 7 base: 'file.txt' 8 }); 9 // Returns: '/home/user/dir/file.txt' 10 11 // `root` will be used if `dir` is not specified. 12 // If only `root` is provided or `dir` is equal to `root` then the 13 // platform separator will not be included. `ext` will be ignored. 14 path.format({ 15 root: '/', 16 base: 'file.txt', 17 ext: 'ignored' 18 }); 19 // Returns: '/file.txt' 20 21 // `name` + `ext` will be used if `base` is not specified. 22 path.format({ 23 root: '/', 24 name: 'file', 25 ext: '.txt' 26 }); 27 // Returns: '/file.txt'
On Windows:
1 path.format({ 2 dir : "C:\\path\\dir", 3 base : "file.txt" 4 }); 5 // Returns: 'C:\\path\\dir\\file.txt'