Path模塊
path.join()
path.join
方法用於連接路徑。該方法的主要用途在於,會正確使用當前系統的路徑分隔符,Unix系統是」/「,Windows系統是」\「。
var path = require('path');
path.join(mydir, "foo");
上面代碼在Unix系統下,會返回路徑mydir/foo
。
path.resolve()
path.resolve
方法用於將相對路徑轉為絕對路徑。
它可以接受多個參數,依次表示所要進入的路徑,直到將最後一個參數轉為絕對路徑。如果根據參數無法得到絕對路徑,就以當前所在路徑作為基準。除了根目錄,該方法的返回值都不帶尾部的斜槓。
// 格式
path.resolve([from ...], to)
// 實例
path.resolve('foo/bar', '/tmp/file/', '..', 'a/../subfile')
上面代碼的實例,執行效果類似下面的命令。
$ cd foo/bar
$ cd /tmp/file/
$ cd ..
$ cd a/../subfile
$ pwd
更多例子。
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')
// 如果當前目錄是/home/myself/node,返回
// /home/myself/node/wwwroot/static_files/gif/image.gif
該方法忽略非字符串的參數。
accessSync()
accessSync
方法用於同步讀取一個路徑。
下面的代碼可以用於判斷一個目錄是否存在。
function exists(pth, mode) {
try {
fs.accessSync(pth, mode);
return true;
} catch (e) {
return false;
}
}
path.relative
path.relative
方法接受兩個參數,這兩個參數都應該是絕對路徑。該方法返回第二個路徑相對於第一個路徑的那個相對路徑。
path.relative('/data/orandea/test/aaa', '/data/orandea/impl/bbb')
// '../../impl/bbb'
上面代碼中,如果當前目錄是/data/orandea/test/aaa
,進入path.relative
返回的相對路徑,就會到達/data/orandea/impl/bbb
。
如果path.relative
方法的兩個參數相同,則返回一個空字符串。
path.parse()
path.parse()
方法可以返回路徑各部分的信息。
var myFilePath = '/someDir/someFile.json';
path.parse(myFilePath).base
// "someFile.json"
path.parse(myFilePath).name
// "someFile"
path.parse(myFilePath).ext
// ".json"