當前位置:
首頁 > 知識 > node.js-文件路徑

node.js-文件路徑


點擊上方藍字關注「小鄭搞碼事」,每天都能學到知識,搞懂一個問題!

這篇總結的是Node.js中,文件路徑操作(這個是後面內容的重要基礎),不是文件系統操作(下一篇),所以,前提是先要引入文件路徑操作path文件。


var path = require("path")

有關於這些規定死的東西,作為開發者,至少要知道有這些方法,而且知道怎麼使用這些方法。所以如果你從頭到尾把這篇文章看一遍,那這兩個目的你也就達到了。關於文件路徑操作,我總結了一下,大概分成9類,(都很簡單易懂)下面一個一個來看。

node.js-文件路徑

一、查詢路徑

對於路徑,首先,我們要知道怎麼怎麼查詢,然後才是操作,下面是一個例子:

node.js-文件路徑

由上圖可以看出:

__dirname:指當前文件夾的完整路徑。

__filename:指當前文件名的完整路徑。

process.cwd():指當前執行node命令時的文件夾的路徑。

process.chdir():改變工作目錄。

process.execPath:指node執行文件的安裝路徑。

下面是上面那段代碼執行的結果:

node.js-文件路徑

個人覺得這裡需要注意理解__dirname和process.cwd()的區別。


二、操作路徑

有關操作路徑,其實就是一個數組的join方法,其次node的path.sep方法,它默認得到路徑分隔符。看一個例子:

node.js-文件路徑

這個例子的結果是:

node.js-文件路徑

理解起來不困難,需要注意的是:path.sep在window下列印的是""而不是"/"。同時在window下使用join方法的正確姿勢是join("\")。當然,path.sep的用法還可以用來將路徑字元串轉換成數組。

下面我們順便看一下path.sep的定義用法。

path.sep方法:將特定文字分隔符"\"或""的字元串轉換成數組對象。以上面那個字元串為例:

"foo/bar/baz".split(path.sep)

將會輸出一個數組:[ "foo", "bar", "baz" ]


三、環境變數

同樣通過一個例子來說明:

node.js-文件路徑

上面這個例子中,path.delimiter提供的是具體路徑分隔符,";"(windows)":"(其它)。process.env.PATH提供的是環境變數的完整路徑。因此,列印出來的結果如下圖所示:

node.js-文件路徑


四、返迴文件擴展名

方法:path.extname

node.js-文件路徑

上面代碼返回:".txt"。


五、返迴文件名

方法:path.basename

node.js-文件路徑

上面代碼返回:"baz.txt"。


六、返回父文件的路徑

方法:path.dirname

node.js-文件路徑

上面代碼返回:"/foo/bar"


七、序列化路徑

方法:path.normalize

node.js-文件路徑

上面代碼返回:"/baz"。

當然,實現上面同樣功能的,還有path.join():

path.join("/foo/bar", ".././bar", "../..", "/baz")

join這個方法在文章最後會提到。


八、相對路徑

方法:path.relative

node.js-文件路徑

上面代碼返回:"../../baz/biff"

九、其它

除了上面這些,還有一些常用的方法:

1、path.resolve(from,to):將參數to位置的字元解析到一個絕對路徑里。


如:console.log(path.resolve("../foo/bar","./baz"))

輸出:/foo/bar/baz

2、path.join():將多個參數組合成一個path。


如:console.log(path.join("../foo/bar","./baz"))

輸出:../foo/bar/baz

3、path.isAbsolute():判斷是否是一個絕對路徑。


如:console.log(path.isAbsolute("./foo/bar"),path.isAbsolute("/foo/bar"))

輸出:false true

4、path.parse():輸出路徑信息


如:path.parse("/home/user/dir/file.txt")

輸出:{root:"/",dir:"/home/user/dir",base:"file.txt",ext:".txt",name:"file"}

5、path.format():還原一個完整路徑


如:path.format({dir:"/home/user/dir",base:"file.txt"})

輸出:/home/user/dir/file.txt

最後總結

還是文章開頭的那句話,這些文件操作的方法簡單易懂,在node.js官網上也有詳細的說明,但這些都是學習node.js其它內容的重要基礎,下一篇我來寫一下文件系統操作。可以期待一下

以上都是個人理解,如有不對的地方,請留言交流!!!也可以關注,一起學習後面的內容

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 小鄭搞碼事 的精彩文章:

node.js-定時器
JavaScript中有一個比較火的技術叫事件委託
H5-這篇告訴你什麼是最佳適配方案
理解clip屬性及用它如何實現圖片載入環形loading效果
用一個bug搞懂什麼是JavaScript函數節流

TAG:小鄭搞碼事 |

您可能感興趣

通過路徑ControlLogix->1770KF2->OPC Client 傳送PLC2 type的message
springboot丟失jdk路徑——jdk安裝與jdk多版本管理
SVG 路徑<path>
Creo/Preo軟體自學第二篇:部分配置文件在config中路徑的設置
Spring Security 實現 antMatchers 配置路徑的動態獲取
如何使用Google Analytics 360中的高級分析探索訪客路徑?
Paint API之PathEffect(路徑效果)
最小生成樹prime演算法、kruskal演算法 最短路徑演算法floyd、dijkstra
使用xSignals定義高速信號路徑
經驗:解決Inno Setup 和一些應用程序在Windows 中不能訪問UNC路徑的問題
【乾貨】C盤空間不夠?如何更改Windows Update默認下載路徑
Photoshop巧用路徑工具設計曲扭圖標教程
Python學習的一些路徑推薦
TalkingData發布2018年最新戰略布局,探索發展新路徑
Python小技巧:3個處理文件路徑的簡單方法
tomcat配置虛擬路徑保存、訪問圖片
從Margiela到Virgil,看看這幾年解構運動鞋的發展路徑啊
資源&教程 | Python數據分析,詳細的學習路徑
Blast2go安裝之中間站:MySQL安裝及修改數據保存路徑
Python爬蟲 | 一條高效的學習路徑