Node.js Path 模組
Node.js path 模組提供了一些用於處理檔路徑的小工具,我們可以通過以下方式引入該模組:
var path = require("path")
方法
序號 | 方法 & 描述 |
---|---|
1 | path.normalize(p) 規範化路徑,注意'..' 和 '.'。 |
2 | path.join([path1][, path2][, ...]) 用於連接路徑。該方法的主要用途在於,會正確使用當前系統的路徑分隔符號,Unix系統是"/",Windows系統是"\"。 |
3 | path.resolve([from ...], to) 將 to 參數解析為絕對路徑,給定的路徑的序列是從右往左被處理的,後面每個 path 被依次解析,直到構造完成一個絕對路徑。 例如,給定的路徑片段的序列為:/foo、/bar、baz,則調用 path.resolve('/foo', '/bar', 'baz') 會返回 /bar/baz。 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' |
4 | path.isAbsolute(path) 判斷參數 path 是否是絕對路徑。 |
5 | path.relative(from, to) 用於將絕對路徑轉為相對路徑,返回從 from 到 to 的相對路徑(基於當前工作目錄)。 在 Linux 上: path.relative('/data/orandea/test/aaa', '/data/orandea/impl/bbb'); // 返回: '../../impl/bbb' 在 Windows 上: path.relative('C:\\orandea\\test\\aaa', 'C:\\orandea\\impl\\bbb'); // 返回: '..\\..\\impl\\bbb' |
6 | path.dirname(p) 返回路徑中代表檔夾的部分,同 Unix 的dirname 命令類似。 |
7 | path.basename(p[, ext]) 返回路徑中的最後一部分。同 Unix 命令 bashname 類似。 |
8 | path.extname(p) 返回路徑中文件的尾碼名,即路徑中最後一個'.'之後的部分。如果一個路徑中並不包含'.'或該路徑只包含一個'.' 且這個'.'為路徑的第一個字元,則此命令返回空字元串。 |
9 | path.parse(pathString) 返回路徑字串的對象。 |
10 | path.format(pathObject) 從對象中返回路徑字串,和 path.parse 相反。 |
屬性
序號 | 屬性 & 描述 |
---|---|
1 | path.sep 平臺的檔路徑分隔符號,'\\' 或 '/'。 |
2 | path.delimiter 平臺的分隔符號, ; or ':'. |
3 | path.posix 提供上述 path 的方法,不過總是以 posix 相容的方式交互。 |
4 | path.win32 提供上述 path 的方法,不過總是以 win32 相容的方式交互。 |
實例
創建 main.js 檔,代碼如下所示:
var path = require("path"); // 格式化路徑 console.log('normalization : ' + path.normalize('/test/test1//2slashes/1slash/tab/..')); // 連接路徑 console.log('joint path : ' + path.join('/test', 'test1', '2slashes/1slash', 'tab', '..')); // 轉換為絕對路徑 console.log('resolve : ' + path.resolve('main.js')); // 路徑中文件的尾碼名 console.log('ext name : ' + path.extname('main.js'));
代碼執行結果如下:
$ node main.js normalization : /test/test1/2slashes/1slash joint path : /test/test1/2slashes/1slash resolve : /web/com/1427176256_27423/main.js ext name : .js