前言
在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('/') );};
新闻热点
疑难解答
图片精选