1.路径模块(path)
封装了各种路径相关的操作
和Buffer一样,NodeJS中的路径也是一个特殊的模块
不同的是Buffer模块已经添加到Global上了, 所以不需要手动导入
而Path模块没有添加到Global上, 所以使用时需要手动导入
2.获取路径的最后一部分
path.basename(path[, ext])
let res = path.basename('/a/b/c/d/index.html');//index.html
let res = path.basename('/a/b/c/d');//d
let res = path.basename('/a/b/c/d/index.html', ".html");//index
console.log(res);
3.获取路径
path.dirname(path)
dirname用于获取路径中的目录, 也就是除了最后一个部分以外的内容
let res = path.dirname('/a/b/c/d/index.html');// /a/b/c/d
let res = path.dirname('/a/b/c/d');// /a/b/c
console.log(res);
4.获取扩展名称
path.extname(path)
let res = path.extname('/a/b/c/d/index.html');// .html
let res = path.extname('/a/b/c/d');//
console.log(res);
5.判断是否是绝对路径
path.isAbsolute(path)
isAbsolute用于判断路径是否是一个绝对路径
注意点:
区分操作系统
在Linux操作系统中/开头就是绝对路径
在Windows操作系统中盘符开头就是绝对路径
在Linux操作系统中路径的分隔符是左斜杠 /
在Windows操作系统中路径的分隔符是右斜杠 \
let res = path.isAbsolute('/a/b/c/d/index.html'); // true
let res = path.isAbsolute('./a/b/c/d/index.html'); // false
let res = path.isAbsolute('c:\\a\\b\\c\\d\\index.html'); // true
let res = path.isAbsolute('a\\b\\c\\d\\index.html'); // false
console.log(res);
path.sep用于获取当前操作系统中路径的分隔符的
如果是在Linux操作系统中运行那么获取到的是 左斜杠 /
如果是在Windows操作系统中运行那么获取到的是 右斜杠 \
6.获取当前操作系统路径分隔符 // 补充:67颠倒
path.delimiter (windows是\ Linux是/)
7.获取当前路径环境变量分隔符
path.sep (windows中使用; linux中使用:)
console.log(path.sep);// \
console.log(path.delimiter);// ;
8.路径的格式化处理
// path.parse() string->obj
// path.format() obj->string
path.parse(path) ;//{
root: '/',
dir: '/a/b/c/d',
base: 'index.html',
ext: '.html',
name: 'index'
}
9.拼接路径
path.join([...paths])
let str = path.join("/a/b", "c"); // /a/b/c
let str = path.join("/a/b", "/c"); // /a/b/c
let str = path.join("/a/b", "/c", "../"); // /a/b/c --> /a/b
let str = path.join("/a/b", "/c", "../../"); // /a/b/c --> /a
console.log(str);
10.规范化路径
path.normalize(path)
let res = path.normalize("/a//b///c////d/////index.html");
11.计算相对路径
path.relative(from, to)
let res = path.relative('/data/orandea/test/aaa', '/data/orandea/impl/bbb');//..\..\impl\bbb
12.解析路径
path.resolve([...paths])
注意点: 如果后面的参数是绝对路径, 那么前面的参数就会被忽略
let res = path.resolve('/foo/bar', './baz'); // /foo/bar/baz
let res = path.resolve('/foo/bar', '../baz'); // /foo/baz
let res = path.resolve('/foo/bar', '/baz'); // /baz
console.log(res);