路径Path模块
路径模块
封装了各种路径相关的操作,和 Buffer 一样, NodeJS 中的路径也是一个特殊的模块,不同的是 Buffer 模块已经添加到Global
上了, 所以不需要手动导入,而 Path 模块没有添加到 Global
上, 所以使用时需要手动导入
获取路径的最后一部分
语法示例如下
path.basename(path[, ext])
basename
用于获取路径的最后一个组成部分
- 第一个参数:需要处理的路径
- 第二个参数:需要过滤的字符
let res = path.basename('/a/b/c/d/index.html');
console.log(res);
let res = path.basename('/a/b/c/d');
console.log(res);
let res = path.basename('/a/b/c/d/index.html', ".html");
console.log(res);
获取路径
语法示例如下
path.dirname(path)
dirname
用于获取路径中的目录, 也就是除了最后一个部分以外的内容
let res = path.dirname('/a/b/c/d/index.html');
console.log(res);
let res = path.dirname('/a/b/c/d');
console.log(res);
获取扩展名称
语法示例如下
path.extname(path)
extname
用于获取路径中最后一个组成部分的扩展名
let res = path.extname('/a/b/c/d/index.html');
console.log(res);
let res = path.extname('/a/b/c/d');
console.log(res);
判断是否是绝对路径
语法示例如下
path.isAbsolute(path)
isAbsolute 用于判断路径是否是一个绝对路径
let res = path.isAbsolute('/a/b/c/d/index.html');
console.log(res);
let res = path.isAbsolute('./a/b/c/d/index.html');
console.log(res);
let res = path.isAbsolute('c:\\a\\b\\c\\d\\index.html');
console.log(res);
let res = path.isAbsolute('a\\b\\c\\d\\index.html');
console.log(res);
注意点: 区分操作系统, 在 Linux
操作系统中 /
开头就是绝对路径, 在 Windows 操作系统中盘符开头就是绝对路径, 在 Linux
操作系统中路径的分隔符是左斜杠 /
, 在Windows操作系统中路径的分隔符是右斜杠 \
获取当前操作系统路径分隔符
语法示例如下
path.delimiter
console.log(path.delimiter);
path.delimiter
用于获取当前操作系统环境变量的分隔符的, 如果是在 Linux 操作系统中运行那么获取到的是 :
如果是在Windows操作系统中运行那么获取到的是 ;
获取当前操作系统路径分隔符
语法示例如下
path.sep
path.sep
用于获取当前操作系统中路径的分隔符的, 如果是在Linux操作系统中运行那么获取到的是左斜杠 /
如果是在Windows操作系统中运行那么获取到的是右斜杠 \
console.log(path.sep);
路径的格式化处理
语法示例如下
path.parse(path): 用于将路径转换成对象
path.parse()
let obj = path.parse("/a/b/c/d/index.html");
console.log(obj);
path.format(pathObject): 用于将对象转换成路径
let obj = {
root: '/',
dir: '/a/b/c/d',
base: 'index.html',
ext: '.html',
name: 'index'
};
let str = path.format(obj);
console.log(str);
拼接路径
语法示例如下
path.join([...paths]): 用于拼接路径, 注意点, 如果参数中没有添加 /
, 那么该方法会自动添加, 如果参数中有 ..
, 那么会自动根据前面的参数生成的路径, 去到上一级路径
let str = path.join("/a/b", "c");
console.log(str);
let str = path.join("/a/b", "/c");
console.log(str);
let str = path.join("/a/b", "/c", "../");
console.log(str);
let str = path.join("/a/b", "/c", "../../");
console.log(str);
规范化路径
语法示例如下
path.normalize(path): 用于规范化路径
let res = path.normalize("/a//b///c////d/////index.html");
console.log(res);
计算相对路径
语法示例如下
path.relative(from, to): 用于计算相对路径
let res = path.relative('/data/orandea/test/aaa', '/data/orandea/impl/bbb');
console.log(res);
如上方法参数的解释
- 第一个参数:/data/orandea/test/aaa
- 第二个参数:/data/orandea/impl/bbb
计算过程如下
/data/orandea/test/aaa → ../ → /data/orandea/test
/data/orandea/test → ../ → /data/orandea
最终结果:....\impl\bbb
解析路径
语法示例如下
path.resolve([...paths]): 用于解析路径,注意点: 如果后面的参数是绝对路径, 那么前面的参数就会被忽略
let res = path.resolve('/foo/bar', './baz');
console.log(res);
let res = path.resolve('/foo/bar', '../baz');
console.log(res);
let res = path.resolve('/foo/bar', '/baz');
console.log(res);
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具