node.js-文件路徑
點擊上方藍字關注「小鄭搞碼事」,每天都能學到知識,搞懂一個問題!
這篇總結的是Node.js中,文件路徑操作(這個是後面內容的重要基礎),不是文件系統操作(下一篇),所以,前提是先要引入文件路徑操作path文件。
var path = require("path")
有關於這些規定死的東西,作為開發者,至少要知道有這些方法,而且知道怎麼使用這些方法。所以如果你從頭到尾把這篇文章看一遍,那這兩個目的你也就達到了。關於文件路徑操作,我總結了一下,大概分成9類,(都很簡單易懂)下面一個一個來看。
一、查詢路徑
對於路徑,首先,我們要知道怎麼怎麼查詢,然後才是操作,下面是一個例子:
由上圖可以看出:
__dirname:指當前文件夾的完整路徑。
__filename:指當前文件名的完整路徑。
process.cwd():指當前執行node命令時的文件夾的路徑。
process.chdir():改變工作目錄。
process.execPath:指node執行文件的安裝路徑。
下面是上面那段代碼執行的結果:
個人覺得這裡需要注意理解__dirname和process.cwd()的區別。
二、操作路徑
有關操作路徑,其實就是一個數組的join方法,其次node的path.sep方法,它默認得到路徑分隔符。看一個例子:
這個例子的結果是:
理解起來不困難,需要注意的是:path.sep在window下列印的是""而不是"/"。同時在window下使用join方法的正確姿勢是join("\")。當然,path.sep的用法還可以用來將路徑字元串轉換成數組。
下面我們順便看一下path.sep的定義用法。
path.sep方法:將特定文字分隔符"\"或""的字元串轉換成數組對象。以上面那個字元串為例:
"foo/bar/baz".split(path.sep)
將會輸出一個數組:[ "foo", "bar", "baz" ]
三、環境變數
同樣通過一個例子來說明:
上面這個例子中,path.delimiter提供的是具體路徑分隔符,";"(windows)":"(其它)。process.env.PATH提供的是環境變數的完整路徑。因此,列印出來的結果如下圖所示:
四、返迴文件擴展名
方法:path.extname
上面代碼返回:".txt"。
五、返迴文件名
方法:path.basename
上面代碼返回:"baz.txt"。
六、返回父文件的路徑
方法:path.dirname
上面代碼返回:"/foo/bar"
七、序列化路徑
方法:path.normalize
上面代碼返回:"/baz"。
當然,實現上面同樣功能的,還有path.join():
path.join("/foo/bar", ".././bar", "../..", "/baz")
join這個方法在文章最後會提到。
八、相對路徑
方法:path.relative
上面代碼返回:"../../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爬蟲 | 一條高效的學習路徑