1. path.resolve()
path.resolve()
方法將路徑或路徑片段的序列解析為絕對(duì)路徑。
給定的路徑序列從右到左進(jìn)行處理量蕊,每個(gè)后續(xù)的 path
前置,直到構(gòu)造出一個(gè)絕對(duì)路徑漠畜。 例如锭沟,給定的路徑片段序列:/foo
、 /bar
配喳、 baz
酪穿,調(diào)用 path.resolve('/foo', '/bar', 'baz')
將返回 /bar/baz
。
如果在處理完所有給定的 path
片段之后還未生成絕對(duì)路徑晴裹,則再加上當(dāng)前工作目錄被济。
生成的路徑已規(guī)范化,并且除非將路徑解析為根目錄涧团,否則將刪除尾部斜杠只磷。
零長(zhǎng)度的 path
片段會(huì)被忽略。
如果沒(méi)有傳入 path
片段泌绣,則 path.resolve()
將返回當(dāng)前工作目錄的絕對(duì)路徑钮追。
path.resolve('/foo/bar', './baz');
// 返回: '/foo/bar/baz'
path.resolve('/foo/bar', '/tmp/file/');
// 返回: '/tmp/file'
path.resolve('wwwroot', 'static_files/png/', '../gif/image.gif');
// 如果當(dāng)前工作目錄是 /home/myself/node,
// 則返回 '/home/myself/node/wwwroot/static_files/gif/image.gif'
如果任何參數(shù)不是字符串阿迈,則拋出 TypeError
元媚。
2. path.join()
path.join()
方法使用平臺(tái)特定的分隔符作為定界符將所有給定的 path
片段連接在一起,然后規(guī)范化生成的路徑苗沧。
零長(zhǎng)度的 path
片段會(huì)被忽略刊棕。 如果連接的路徑字符串是零長(zhǎng)度的字符串,則返回 '.'
崎页,表示當(dāng)前工作目錄鞠绰。
path.join('/foo', 'bar', 'baz/asdf', 'quux', '..');
// 返回: '/foo/bar/baz/asdf'
path.join('foo', {}, 'bar');
// 拋出 'TypeError: Path must be a string. Received {}'
如果任何路徑片段不是字符串,則拋出 TypeError
飒焦。
3. 總結(jié)
- path.resolve() 從右向左拼接蜈膨,如果提前遇到了
/
(linux or mac)根目錄符號(hào),則提前結(jié)束牺荠,因?yàn)橐呀?jīng)達(dá)到拼接出絕對(duì)路徑的目的翁巍。 - path.join() 無(wú)論有無(wú)
/
(linux or mac) 都只是進(jìn)行簡(jiǎn)單的片段連接。 - 二者遇到
..
上一層級(jí)目錄的指示休雌,都會(huì)正常處理跳轉(zhuǎn)灶壶。