Node.js path 路径模块
path 模块提供跨平台的路径字符串处理工具,解决不同操作系统路径分隔符差异问题。
引入模块
JavaScript
const path = require('path');
常用方法
path.join 拼接路径
JavaScript
// 自动处理分隔符,生成正确路径
const fullPath = path.join('/home', 'user', 'docs', 'file.txt');
console.log(fullPath);
// Linux: /home/user/docs/file.txt
// Windows: \home\user\docs\file.txt
// 忽略空字符串
path.join('/home', '', 'file.txt'); // /home/file.txt
path.resolve 解析为绝对路径
JavaScript
// 从右向左解析,遇到绝对路径则停止
path.resolve('/home', './user', 'file.txt');
// /home/user/file.txt
path.resolve('/home', '/other', 'file.txt');
// /other/file.txt(遇到绝对路径 /other)
// 无绝对路径时,基于当前工作目录
path.resolve('file.txt');
// /current/dir/file.txt
path.basename 获取文件名
JavaScript
// 获取最后一部分
path.basename('/home/user/file.txt'); // file.txt
// 移除扩展名
path.basename('/home/user/file.txt', '.txt'); // file
path.dirname 获取目录名
JavaScript
path.dirname('/home/user/file.txt');
// /home/user
path.dirname('/home/user/docs/');
// /home/user
path.extname 获取扩展名
JavaScript
path.extname('/home/user/file.txt'); // .txt
path.extname('/home/user/file.tar.gz'); // .gz
path.extname('/home/user/file'); // ''(无扩展名)
path.parse 解析路径对象
JavaScript
const parsed = path.parse('/home/user/file.txt');
console.log(parsed);
// {
// root: '/',
// dir: '/home/user',
// base: 'file.txt',
// ext: '.txt',
// name: 'file'
// }
path.format 格式化路径
JavaScript
const pathObj = {
dir: '/home/user',
base: 'file.txt'
};
console.log(path.format(pathObj));
// /home/user/file.txt
路径分隔符
JavaScript
// 系统分隔符
console.log(path.sep);
// Linux: '/'
// Windows: '\\'
// 路径分隔符(环境变量等)
console.log(path.delimiter);
// Linux: ':'
// Windows: ';'
// 使用 sep 构建路径
const p = ['home', 'user', 'file'].join(path.sep);
路径规范化
JavaScript
// path.normalize 规范化路径
path.normalize('/home/../user/./file.txt');
// /user/file.txt(解析 .. 和 .)
路径判断
JavaScript
// path.isAbsolute 判断是否为绝对路径
path.isAbsolute('/home/user'); // true
path.isAbsolute('./file.txt'); // false
path.isAbsolute('C:\\file.txt'); // true (Windows)
相对路径
JavaScript
// path.relative 计算相对路径
path.relative('/home/user/docs', '/home/user/images');
// ../images
path.relative('/home/user', '/other/path');
// ../../other/path
实用示例
JavaScript
// 与 __dirname 配合使用
const filePath = path.join(__dirname, 'data', 'config.json');
// 获取父目录
const parentDir = path.dirname(path.dirname(__filename));
// 获取项目根目录
const root = path.resolve(__dirname, '..');
要点总结
- path.join 拼接路径,自动处理分隔符
- path.resolve 解析为绝对路径
- path.basename/dirname/extname 获取路径各部分
- path.parse 解析为对象,path.format 还原路径
- 使用 path.sep 代替硬编码分隔符,保证跨平台兼容
📝 发现内容有误?点击此处直接编辑