内置模块path
- path模块用于对路径和文件进行处理,提供了很多好用的方法。
- 我们知道在Mac OS、Linux和window上的路径时不一样的
- window上会使用 \或者 \ 来作为文件路径的分隔符,当然目前也支持 /
- 在Mac OS、Linux的Unix操作系统上使用 / 来作为文件路径的分隔符
- 那么如果我们在window上使用 \ 来作为分隔符开发了一个应用程序,要部署到Linux上面应该怎么办呢?
- 显示路径会出现一些问题
- 所以为了屏蔽他们之间的差异,在开发中对于路径的操作我们可以使用 path 模块
- 可移植操作系统接口(英语:Portable Operating System Interface,缩写为POSIX)
- Linux和Mac OS都实现了POSIX接口
- Window部分电脑实现了POSIX接口
path常见的API
-
从路径中获取信息
路径信息 dirname 获取文件的父文件夹 basename 获取文件名 extname 获取文件扩展名 -
路径的拼接:path.join
- 如果我们希望将多个路径进行拼接,但是不同的操作系统可能使用的是不同的分隔符
- 这个时候我们可以使用path.join函数
-
拼接绝对路径:path.resolve
- path.resolve() 方法会把一个路径或路径片段的序列解析为一个绝对路径
- 给定的路径的序列是从右往左被处理的,后面每个 path 被依次解析,直到构造完成一个绝对路径
- 如果在处理完所有给定path的段之后,还没有生成绝对路径,则使用当前工作目录
- 生成的路径被规范化并删除尾部斜杠,零长度path段被忽略
- 如果没有path传递段,path.resolve()将返回当前工作目录的绝对路径
const path = require("path")
const fileName = "D:/Desktop/Project/h5css3/h5.html"
//从路径中获取信息
//1.获取文件的父文件夹
console.log(path.dirname(fileName));//D:/Desktop/Project/h5css3
//2.获取文件名
console.log(path.basename(fileName));//h5.html
//3.获取文件扩展名
console.log(path.extname(fileName));//.html
//将多个路径拼接在一起
const path1 = "D:/Desktop/文件夹"
const path2 = "../Project/h5css3/h5.html"// 这里的../就是自动找到上一层,如果不加../就是单纯拼接在一起,想要往上几层就写几个../,而且这是会自动将 / 转义成适合MacOS和Linux的路径
console.log(path.join(path1,path2));//D:\Desktop\Project\h5css3\h5.html
//将多个路径拼接在一起,最终一定返回一个绝对路径,path.resolve
console.log(path.resolve("老铁666",path1,path2));//从右往左,形成绝对路径就不再往左推导,D:\Desktop\Project\h5css3\h5.html
//自动推导到绝对路径(./则继续往前拼接,/则到头不再拼接,推导到的绝对路径是使用当前工作目录),中间有空字符串会自动忽略
console.log(path.resolve("./----------","./XiaoYu.ts"));//D:\Desktop\Project\h5css3\----------\XiaoYu.ts