1.連接路徑:path.join([path1][, path2][, ...])
path.join()方法可以連接任意多個(gè)路徑字符串糠排。要連接的多個(gè)路徑可做為參數(shù)傳入灵疮。path.join()方法在接邊路徑的同時(shí)也會(huì)對(duì)路徑進(jìn)行規(guī)范化疹鳄。例如:
var path = require('path');
//合法的字符串連接
path.join('/foo', 'bar', 'baz/asdf', 'quux', '..')
// 連接后
'/foo/bar/baz/asdf'
//不合法的字符串將拋出異常
path.join('foo', {}, 'bar')
// 拋出的異常
TypeError: Arguments to path.join must be strings'
2.路徑解析:path.resolve([from ...], to)
path.resolve()方法可以將多個(gè)路徑解析為一個(gè)規(guī)范化的絕對(duì)路徑着饥。其處理方式類似于對(duì)這些路徑逐一進(jìn)行cd操作隆檀,與cd操作不同的是叶沛,這引起路徑可以是文件蒲讯,并且可不必實(shí)際存在(resolve()方法不會(huì)利用底層的文件系統(tǒng)判斷路徑是否存在,而只是進(jìn)行路徑字符串操作)灰署。例如:
path.resolve('foo/bar', '/tmp/file/', '..', 'a/../subfile')
相當(dāng)于
cd foo/bar
cd /tmp/file/
cd ..
cd a/../subfile
pwd
例子:
path.resolve('/foo/bar', './baz')
// 輸出結(jié)果為
'/foo/bar/baz'
path.resolve('/foo/bar', '/tmp/file/')
// 輸出結(jié)果為
'/tmp/file'
path.resolve('wwwroot', 'static_files/png/', '../gif/image.gif')
// 當(dāng)前的工作路徑是 /home/itbilu/node判帮,則輸出結(jié)果為
'/home/itbilu/node/wwwroot/static_files/gif/image.gif'
3.對(duì)比
const path = require('path');
let myPath = path.join(__dirname,'/img/so');
let myPath2 = path.join(__dirname,'./img/so');
let myPath3 = path.resolve(__dirname,'/img/so');
let myPath4 = path.resolve(__dirname,'./img/so');
console.log(__dirname); //D:\myProgram\test
console.log(myPath); //D:\myProgram\test\img\so
console.log(myPath2); //D:\myProgram\test\img\so
console.log(myPath3); //D:\img\so<br>
console.log(myPath4); //D:\myProgram\test\img\so