Node.js日記:Path模塊

path

因爲 Node.js 是可以運行在不同操作系統上的,而不同操作系統的路徑分隔符是不一樣的,在 Windows 中,標準分隔符是“\”,在 UNIX 中,標準分隔符是“/”,還有它們之間根路徑也是不一樣的,所以 Node.js Path 模塊提供了一些用於處理文件路徑的小工具。

注意在使用前需要通過以下方式引入該模塊:

const path = require("path");

屬性

- path.sep:路徑分割符,在不同操作系統獲取的不一樣,在 Windows `\`,在 UNIX 中 `/`
- path.delimiter:環境變量分割符,在不同操作系統獲取的不一樣,在 Windows `;`,在 UNIX 中 `:`

方法

- path.basename(path[, ext]):        返回路徑中的最後一部分,帶了擴展名參數,則返回路徑最後一個部分不包含擴展名
- path.dirname(path):                返回路徑中代表文件夾的部分
- path.extname(path):                返回路徑中文件的後綴名
- path.parse(pathString):            返回路徑字符串的對象
- path.format(pathObject):           從對象中返回路徑字符串,和 path.parse 相反
- path.isAbsolute(path):             判斷參數 path 是否是絕對路徑
- path.join([...paths])               用於連接路徑。該方法的主要用途在於,會正確使用當前系統的路徑分隔符
- path.normalize(path)                規範化給定路徑,解析 '..' 和 '.'
- path.relative(from, to)             將絕對路徑轉爲相對路徑,返回從 from 到 to 的相對路徑
- path.resolve([...paths])            方法將一系列路徑或路徑段解析爲絕對路徑。給定的路徑序列從右到左處理,每個後續路徑前置,直到構造絕對路徑

代碼舉例:

let p = '/foo/bar/baz/asdf/quux.html';
console.log(path.basename(p));           // quux.html
console.log(path.basename(p, '.html'));  // quux
console.log(path.extname(p));            // .html
let p = '/foo/bar/baz/asdf/quux.html';
console.log(path.parse(p));

let pathObj = {
    root: 'E:\\',               // 根路徑
    dir: 'E:\\Note\\Node.js',   // 目錄
    base: '12.路徑.html',       // 文件
    ext: '.html',               // 後綴名
    name: '12.路徑'             // 文件名
};

console.log(path.format(pathObj)); 

console.log(path.isAbsolute(p));  // true

console.log(path.join('/foo', 'bar', 'baz/asdf', 'quux'));       //\foo\bar\baz\asdf\quux
console.log(path.join('/foo', 'bar', 'baz/asdf', 'quux', '..'));     // \foo\bar\baz\asdf
console.log(path.join('/foo', 'bar', 'baz/asdf', 'quux', '../..'));  // \foo\bar\baz

console.log(path.normalize('C:\\temp\\\\foo\\bar\\..\\'));           // C:\temp\foo\

// ..\..\impl\bbb
console.log(path.relative('C:\\orandea\\test\\aaa', 'C:\\orandea\\impl\\bbb'));

console.log(path.resolve('\\foo\\bar', '.\\baz'));  // e:\foo\bar\baz
console.log(path.resolve('f:', '\\foo\\bar', '.\\baz'));  // f:\foo\bar\baz

// 依次從右邊給定的路徑開始,解析出絕對路徑,若給定的路徑沒有包含根路徑,那則以當前運行文件所以在根路徑爲準。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章