前言
在node.js中,提供了一個path某塊,在這個模塊中,提供了許多使用的,可被用來處理與轉換路徑的方法與屬性,將path的接口按照用途歸類,仔細琢磨琢磨,也就沒那么費解了。下面我們就來詳細介紹下關于Node.js中的路徑處理模塊path。
獲取路徑/文件名/擴展名
獲取路徑:path.dirname(filepath)
獲取文件名:path.basename(filepath)
獲取擴展名:path.extname(filepath)
獲取所在路徑
例子如下:
var path = require('path');var filepath = '/tmp/demo/js/test.js';// 輸出:/tmp/demo/jsconsole.log( path.dirname(filepath) );獲取文件名
嚴格意義上來說,path.basename(filepath) 只是輸出路徑的最后一部分,并不會判斷是否文件名。
但大部分時候,我們可以用它來作為簡易的“獲取文件名“的方法。
var path = require('path');// 輸出:test.jsconsole.log( path.basename('/tmp/demo/js/test.js') );// 輸出:testconsole.log( path.basename('/tmp/demo/js/test/') );// 輸出:testconsole.log( path.basename('/tmp/demo/js/test') );如果只想獲取文件名,單不包括文件擴展呢?可以用上第二個參數。
// 輸出:testconsole.log( path.basename('/tmp/demo/js/test.js', '.js') );獲取文件擴展名
簡單的例子如下:
var path = require('path');var filepath = '/tmp/demo/js/test.js';// 輸出:.jsconsole.log( path.extname(filepath) );更詳細的規則是如下:(假設 path.basename(filepath) === B )
從B的最后一個.開始截取,直到最后一個字符。
如果B中不存在.,或者B的第一個字符就是.,那么返回空字符串。
直接看官方文檔的例子
path.extname('index.html')// returns '.html'path.extname('index.coffee.md')// returns '.md'path.extname('index.')// returns '.'path.extname('index')// returns ''path.extname('.index')// returns ''路徑組合
path.join([...paths])path.resolve([...paths])
path.join([...paths])
把paths拼起來,然后再normalize一下。這句話反正我自己看著也是莫名其妙,可以參考下面的偽代碼定義。
例子如下:
var path = require('path');// 輸出 '/foo/bar/baz/asdf'path.join('/foo', 'bar', 'baz/asdf', 'quux', '..');path定義的偽代碼如下:
module.exports.join = function(){ var paths = Array.prototye.slice.call(arguments, 0); return this.normalize( paths.join('/') );};path.resolve([...paths])
這個接口的說明有點 主站蜘蛛池模板: 左权县| 宣武区| 常山县| 鄂伦春自治旗| 榆中县| 子洲县| 湘乡市| 黄骅市| 尼木县| 博客| 拉孜县| 河北区| 繁峙县| 青浦区| 紫金县| 济宁市| 通州市| 徐水县| 蓬莱市| 呼伦贝尔市| 黑河市| 成安县| 庆阳市| 莒南县| 辽阳县| 嘉黎县| 收藏| 全州县| 庆城县| 大厂| 平定县| 高邑县| 托克逊县| 沂源县| 平昌县| 左权县| 中超| 崇文区| 大理市| 黄冈市| 太康县|