Skip to content

path 模块

作者:青见春山
发表于:2026-09-08
字数统计:462 字
预计阅读2分钟

node:path 模块提供跨平台处理文件系统路径的工具。它只处理路径字符串,不会访问文件系统或确认路径是否存在。

API说明
path.resolve从右向左解析片段,返回规范化的绝对路径
path.join使用当前平台分隔符连接并规范化路径片段
path.sep获取当前平台的路径分隔符
path.parse把路径解析为 rootdirbasenameext 等字段
path.basename获取路径的最后一部分
path.dirname获取路径的目录部分
path.extname获取最后一部分中的扩展名

代码示例:

js
const path = require("node:path");

// 字符串拼接可能混用分隔符;Node.js 经常仍能识别,但不利于跨平台和规范化
console.log(__dirname + "/index.html");

console.log(path.resolve(__dirname, "./index.html"));
console.log(path.resolve(__dirname, "index.html"));
// 上面两个调用的结果相同,此处 ./ 不是必需的

// resolve 遇到绝对路径片段后,会丢弃它左侧已经解析的片段
console.log(path.resolve(__dirname, "/index.html", "./test"));

// 若想始终在 __dirname 下组合相对片段,可使用 join,并避免片段表达其他盘符
console.log(path.join(__dirname, "index.html", "test"));

// Windows 通常为反斜线,POSIX 系统为正斜线
console.log(path.sep);

// CommonJS 包装器按模块提供 __filename;它不是 globalThis 属性,ESM 中也不存在
console.log(__filename);

const filePath = "D:\\Desktop\\Node\\code\\04-path\\01-path.js";
console.log(path.parse(filePath));
console.log(path.basename(filePath));
console.log(path.dirname(filePath));
console.log(path.extname(filePath));

path 默认采用当前操作系统的路径规则。需要在任意系统上明确处理 Windows 或 POSIX 格式时,可以分别使用 path.win32path.posix

parse 方法返回结果:

image-20250131113647462

image-20250131113851391