nodeJS之路徑PATH模組

2021-09-28 16:26:12 字數 4984 閱讀 6577

path模組包含一系列處理和轉換檔案路徑的工具集,通過 

require('path')
可用來訪問這個模組。本文將詳細介紹path模組

【path.dirname(p)】

返回路徑p所在的目錄

var path = require('path');

console.log(path.dirname('/foo/bar/baz/asdf/a.txt')); //

/foo/bar/baz/asdf

console.log(path.dirname('/foo/bar/baz/asdf/')); //

/foo/bar/baz

console.log(path.dirname('c:/test/aaa')); //

c:/test

【path.basename(p[, ext])】

返回路徑的最後乙個部分,即檔名。引數ext為需要截掉的字尾內容 

var path = require('path');

console.log(path.basename('/foo/bar/baz/asdf/a.txt')); //

a.txt

console.log(path.basename('/foo/bar/baz/asdf/a.txt','.txt')); //

aconsole.log(path.basename('/foo/bar/baz/asdf/')); //

asdf

console.log(path.basename('c:/test/aaa')); //

aaa

【path.extname(p)】

返回路徑p的副檔名,從最後乙個'.'到字串的末尾。如果最後乙個部分沒有'.',或者路徑是以'.'開頭,則返回空字串

var path = require('path');

console.log(path.extname('/foo/bar/baz/asdf/a.txt')); //

.txt

console.log(path.extname('/foo/bar/baz/asdf/a.txt.b')); //

.bconsole.log(path.extname('/foo/bar/baz/asdf/a.')); //

.console.log(path.extname('c:/test/aaa/.')); //

''console.log(path.extname('c:/test/aaa')); //

''

【path.sep】

返回對應平台下的檔案分隔符,win下為'\',*nix下為'/'

var path = require('path');

console.log(path.sep);

//win下為\,*nix下為/

console.log('foo\\bar\\baz'.split(path.sep)); //

[ 'foo', 'bar', 'baz' ]

console.log('foo/bar/baz'.split(path.sep)); //

win下返回['foo/bar/baz'],但在*nix系統下會返回['foo','bar','baz']

【path.delimiter】

返回對應平台下的路徑分隔符,win下為';',*nix下為':'

var path = require('path');

console.log(path.delimiter);

//win下為「;」,*nix下為「:」

console.log(path.sep); //

win下為\,*nix下為/

【path.normalize(p)】

規範化路徑,處理冗餘的「..」、「.」、「/」字元。發現多個斜槓時,會替換成乙個斜槓。當路徑末尾包含乙個斜槓時,保留。windows系統使用反斜槓 

var path = require('path');

console.log(path.normalize('a/b/c/../user/bin'));//

a\b\user\bin

console.log(path.normalize('a/b/c///../user/bin/'));//

a\b\user\bin\

console.log(path.normalize('a/b/c/../../user/bin'));//

a\user\bin

console.log(path.normalize('a/b/c/../.../user/bin/..'));//

a\user

console.log(path.normalize('a/b/c/../../user/bin/../../'));//

a\console.log(path.normalize('a/../../user/bin/../../'));//

..\console.log(path.normalize('a/../../user/bin/../../../../'));//

..\..\..\

console.log(path.normalize('./a/.././user/bin/./'));//

user\bin\

【path.join([path1], [path2], [...])】

將多個路徑結合在一起,並轉換為規範化路徑 

var path = require('path');

console.log(path.join('./a', 'bc', 'user/'));//

\a\b\c\user

console.log(path.join('a', '../../', 'user/'));//

..\user\

【path.resolve([from ...], to)】

從源位址 from 到目的位址 to 的絕對路徑,類似在shell裡執行一系列的cd命令

path.resolve('foo/bar', '/tmp/file/', '..', 'a/../subfile')

類似於:

cd foo/bar

cd /tmp/file/cd ..

cd a/../subfile

pwd

[注意]如果某個from或to引數是絕對路徑(比如 'e:/abc',或是以「/」開頭的路徑),則將忽略之前的from引數

var path = require('path');

console.log(path.resolve('.', 'testfiles/..', 'trdlayer'));//

d:\project\trdlayer

console.log(path.resolve('..', 'testfiles', 'a.txt'));//

d:\testfiles\a.txt

console.log(path.resolve('d:', 'abc', 'd:/a'));//

d:\a

console.log(path.resolve('abc', 'ok.gif'));//

d:\project\abc\ok.gif

console.log(path.resolve('abc', '..', 'a/../subfile')); //

d:\project\subfile

【path.isabsolute(path)】

path是乙個絕對路徑(比如 'e:/abc'),或者是以「/」開頭的路徑,二者都會返回true

var path = require('path');

console.log(path.isabsolute('../testfiles/seclayer'));//

false

console.log(path.isabsolute('./join.js'));//

false

console.log(path.isabsolute('temp'));//

false

console.log(path.isabsolute('/temp/../..'));//

true

console.log(path.isabsolute('e:/github/nodeapi/abc/efg'));//

true

console.log(path.isabsolute('///temp123'));//

true

【path.relative(from, to)】

獲取從 from 到 to 的相對路徑,可以看作 path.resolve 的相反實現

path.resolve(from, path.relative(from, to)) == path.resolve(to)

var path = require('path');

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

..\impl\bbb

console.log(path.relative('c:/test/aaa', 'c:/bbb'));//

..\..\bbb

console.log(path.relative('c:/test/aaa', 'd:/bbb'));//

d:\bbb

更多專業前端知識,請上

【猿2048】www.mk2048.com

Nodejs教程12 path(路徑)模組

path模組主要用來對檔案路徑進行處理,比如提取路徑 字尾,拼接路徑等。接下來通過一些例子熟悉一下path的使用 示例 lesson12 path.js const path require path const str root a b 1.txt console.log path.dirname...

nodejs中的path模組

path 路徑 檔案路徑,某個檔案在磁碟上的位置 檔案路徑按照完整性區分 相對路徑和絕對路徑 相對路徑是乙個不完整的路徑,忽略了開頭的碟符和頂層檔案位置 index.html 表示當前目錄 表示上層目錄 絕對路徑是乙個完整路徑,包含碟符和所有上層資料夾 e 前端55期 2019 9 23 01 ht...

Nodejs學習之Path模組

node.js path模組提供了一些用於處理檔案路徑的方法 引入path模組 var path require path 格式化路徑 console.log normalization path.normalize test test1 lynnlee teemo picaq 列印結果 norma...