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...