path模块处理路径信息
获取文件信息
path.extname('路径'); 获取路径后缀名
path.basename('路径'); 获取文件名和后缀
path.dirname('路径'); 获取其中文件所在的文件夹路径
将一些序列解析成绝对路径
path.resolve(...['xx','xx',...]); 将字符串按照文件当前路径拼接在后面,会解析到当前文件所在盘符里的第一个文件夹
path.resolve('x','xx','xxx')
可能只会解析到当前文件所在盘符里的第一个文件夹,如d:\文件夹,所以通过path.resolve(__dirname,'x');解析到精确路径
遇到"../"或".." 解析会跳出文件夹
将一些序列解析成x\xx\xx的路径
path.join(...['a','b','c'])
path.join('a','b','c');
可利用path.join(__dirname,'x','xx');来拼接当前文件夹后的路径
遇到"../"或".." 解析会跳出文件夹
path.join和path.resolve的区别:
path.resolve遇到"/"会直接替换,而path.join会拼接
假设__dirname为:c:\root
path.resolve(__dirname,'/abc') c:\abc
path.resolve(__dirname,'/abc','/ddd') c:\ddd
path.join(__dirname,'/abc') c:\root\abc
path.join(__dirname,'/abc','/ddd') c:\root\abc\ddd
解析路径
path.parse(路径)
当前文件所在文件夹绝对路径,相当于'.'+'/xx'
__dirname
当前文件的绝对路径
__filename
代码示例:
let path=require('path')
let os=require('os')
let strPath='https://news.sina.com.cn'
//获取路径信息的扩展名
let info=path.extname(strPath);
console.log(info);
let info1=path.resolve(...['a','b','c']);
let info2=path.resolve('a','b','c');
console.log(info2);
let info3=path.join(...['a','b','c'])
let info4=path.join('a','b','c');
console.log(info3,info4);
console.log(__dirname);
let info5=path.join(__dirname,'a');
console.log(info5);
//解析url,拿到最后两个字段并拼接
let str='https://news.sina.com/xinwen/guonei.html'
let arr=str.split('/');
let arr2=arr.slice(arr.length-2,arr.length);
console.log(arr2);
let str2=path.join(__dirname,...arr2);
console.log(str2);
console.log(__filename);
console.log(path.parse(__filename));
console.log(os.cpus());