Node.js path 模块提供了一些用于处理文件路径的小工具,我们可以通过以下方式引入该模块:
var path = require("path")
获取 /路径/文件名/扩展名
- 获取路径:path.dirname(filepath)
- 获取文件名:path.basename(filename)
- 获取扩展名:path.extname(filepath)
获取所在路径
const path=require("path");
var filepath='/node/base/path/test.js';
console.log(
path.dirname(filepath)
)
//输出/node/base/path
获取文件名
path.basename(filepath)实际上是获取了路径的最后一部分,
而不是真正的获取到了文件名,但是在实际应用中最后的字符往往就是我们的文件名
const path = require("path");
console.log(path.basename("/node/base/path/test.js"));
//输出 test.js
console.log(path.basename("/node/base/path/test/"));
//输出 test
console.log(path.basename("/node/base/path/test"));
//输出 test
如果只想获取文件名,不需要扩展名则可以使用第二个参数,第二个参数就是指定的文件扩展名
const path = require("path");
console.log(path.basename("/node/base/path/test.js",".js"));
//输出 test
获取文件扩展名
const path = require("path");
console.log(path.extname("/node/base/path/test.js",".js"));
//输出 .js
更详细的规则是如下:(假设 path.basename(filepath) === B )
从B的最后一个.开始截取,直到最后一个字符。
如果B中不存在.,或者B的第一个字符就是.,那么返回空字符串。
文件路径分解/组合
1.path.join([…paths])
2.path.resolve([…paths])
path.join(path1,path2,path3…)
作用:将路径片段使用特定的分隔符(window:\)连接起来形成路径,并规范化生成的路径。若任意一个路径片段类型错误,会报错。
const path = require('path');
let myPath = path.join(__dirname,'/img/so');
let myPath2 = path.join(__dirname,'./img/so');
let myPath3=path.join('/foo', 'bar', 'baz/asdf', 'quux', '..');
console.log(__dirname);
console.log(myPath);
console.log(myPath2);
console.log(myPath3);
path.resolve([from…],to)
作用:把一个路径或路径片段的序列解析为一个绝对路径。相当于执行cd操作。
/被解析为根目录
let myPath = path.resolve(__dirname,'/img/so');
let myPath2 = path.resolve(__dirname,'./img/so');
let myPath3=path.resolve('/foo/bar', './baz');
let myPath4=path.resolve('/foo/bar', '/tmp/file/');
console.log(__dirname);
console.log(myPath);
console.log(myPath2);
console.log(myPath3);
console.log(myPath4);