js path模組的應用

你的財神爺發表於2017-12-05

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"

相關文章