1. 程式人生 > 實用技巧 >path屬性與方法的學習和整理

path屬性與方法的學習和整理

path 模組提供了許多非常實用的函式來訪問檔案系統並與檔案系統進行互動。
無需安裝。 作為 Node.js 核心的組成部分可以通過簡單地引用來使用它:

const path = require('path')

方法

path.basename

獲取路徑中的檔名

require('path').basename('/test/something') //something
require('path').basename('/test/something.txt') //something.txt
require('path').basename('/test/something.txt', '.txt') //something

path.dirname

返回路徑的目錄部分

require('path').dirname('/test/something') // /test
require('path').dirname('/test/something/file.txt') // /test/something

path.extname

返回路徑的副檔名部分

require('path').extname('/test/something') // ''
require('path').extname('/test/something/file.txt') // '.txt'

path.isAbsolute

檢測是否為絕對路徑

require('path').isAbsolute('/test/something') // true
require('path').isAbsolute('./test/something') // false

path.join

路徑拼接

const name = '001'
require('path').join('/', 'abc', name, 'index.txt') //'/abc/001/index.txt'

path.normalize

解析 '..' 和 '.' 片段 當包含諸如 .、.. 或雙斜槓之類的相對說明符時,其會嘗試計算實際的路徑

require('path').normalize('/abc/001/..//index.txt') //'/abc/001/index.txt'

path.parse
解析物件的路徑為組成其的片段

  • root: 根路徑
  • dir: 從根路徑開始的資料夾路徑
  • base: 檔名 + 副檔名
  • name: 檔名
  • ext: 副檔名
require('path').parse('/users/test.txt')
// {
//   root: '/',
//   dir: '/users',
//   base: 'test.txt',
//   ext: '.txt',
//   name: 'test'
// }

path.format

方法從物件返回路徑字串。 與 path.parse() 相反

path.format({
  root: '/ignored',
  dir: '/home/user/dir',
  base: 'file.txt'
});
// 返回: '/home/user/dir/file.txt

path.relative

接受 2 個路徑作為引數。 基於當前工作目錄,返回從第一個路徑到第二個路徑的相對路徑。

require('path').relative('/Users/joe', '/Users/joe/test.txt') //'test.txt'
require('path').relative('/Users/joe', '/Users/joe/something/test.txt') //'something/test.txt'

path.resolve()

可以使用 path.resolve() 獲得相對路徑的絕對路徑計算:
可以使用 path.resolve() 獲得相對路徑的絕對路徑計算:

path.resolve('joe.txt') //'/Users/joe/joe.txt' 如果從主資料夾執行

通過指定第二個引數,resolve 會使用第一個引數作為第二個引數的基準:

path.resolve('tmp', 'joe.txt') //'/Users/joe/tmp/joe.txt' 如果從主資料夾執行

如果第一個引數以斜槓開頭,則表示它是絕對路徑:

path.resolve('/etc', 'joe.txt') //'/etc/joe.txt'

path.toNamespacedPath

僅在 Windows 系統上,返回給定 path 的等效名稱空間字首路徑。 如果 path 不是字串,則將返回 path 而不進行修改。
此方法僅在 Windows 系統上有意義。 在 POSIX 系統上,該方法不可操作,並且始終返回 path 而不進行修改。

屬性

path.delimiter

提供平臺特定的路徑定界符

path.posix

屬性提供對 path 方法的 POSIX 特定實現的訪問

path.sep

提供平臺特定的路徑片段分隔符

  • Windows 上是 \
  • Mac 上是 /

path.win32

屬性提供對特定於 Windows 的 path 方法的實現的訪問