/*
路径操作
*/
const path = require('path');
// 获取路径的最后一部分 第二个参数表示如果以指定字符结尾 则去除这部分
console.log(7+path.basename('/foo/bar/baz/asdf/quux.html'));//quux.html
console.log(8+path.basename('/foo/bar/baz/asdf/quux.htmlgg', '.html'));//quux.htmlgg
// 获取路径
console.log(11+__dirname);//获取当前文件路径
console.log(12+__filename);//获取当前包含文件名的路径
console.log(path.dirname('/abc/qqq/www/abc'));//返回去掉最后一个 "/" 之后参数的路径 /abc/qqq/www
// 获取扩展名称
console.log(16+path.extname('index.html'));//.html
// 路径的格式化处理
// path.format() obj->string
// path.parse() string->obj
let obj = path.parse(__filename);
console.log(obj);/*{ root: 'E:\\', 文件的根路径
dir: 'E:\\node\\day02\\02-code',文件的全路径
base: '02.js',文件的名称
ext: '.js',扩展名
name: '02' 文件名称
}*/
let objpath = {
root : 'd:\\',
dir : 'd:\\qqq\\www',
base : 'abc.txt',
ext : '.txt',
name : 'abc'
};
let strpath = path.format(objpath);
console.log(strpath);//d:\qqq\www\abc.txt
// 判断是否为绝对路径
console.log(path.isAbsolute('/foo/bar'));//true
console.log(path.isAbsolute('C:/foo/..'));//true
// 拼接路径(..表示上层路径;.表示当前路径),在连接路径的时候会格式化路径
console.log(path.join('/foo', 'bar', 'baz/asdf', 'quux', '../../')); // \foo\bar\baz\
// 规范化路径
console.log(path.normalize('/foo/bar//baz/asdf/quux/..')); // \foo\bar\baz\asdf
console.log(path.normalize('C:\\temp\\\\foo\\bar\\..\\')); // C:\temp\foo\
// 计算相对路径 计算参数1 相对于参数2的路径
console.log(path.relative('/data/orandea/test/aaa', '/data/orandea/impl/bbb'));// (..\..\impl\bbb)
console.log(path.relative('C:\\orandea\\test\\aaa', 'C:\\orandea\\impl\\bbb')); // ( ..\..\impl\bbb)
// 解析路径
console.log(path.resolve('wwwroot', 'static_files/png/', '../gif/image.gif'));// D:\Study\Node\czbk\wwwroot\static_files\gif\image.gif
// 两个特殊属性
console.log(path.sep);//表示路径分隔符(windows是\ Linux是/)
console.log(path.delimiter);//环境变量分隔符(windows中使用; linux中使用:)
网友评论