Node.js Path 模块

Node.js 工具模块Node.js 工具模块

Node.js path 模块提供了一些用于处理文件路径的小工具。

path 模块是 Node.js 的核心模块之一,用于处理和操作文件和目录路径,提供跨平台的路径操作方法。

通过 path 模块,可以拼接、解析、格式化和规范化路径,避免因为操作系统的不同路径格式而导致的错误(如 Windows 使用反斜杠 \,而 Linux 和 macOS 使用正斜杠 /)。

我们可以通过以下方式引入该模块:

var path = require("path")

方法与属性

path 模块的方法与属性如下表:

方法描述示例
path.basename(path[, ext])返回路径中的最后一部分(文件名)。可选参数 ext 用于去除文件扩展名。path.basename('/foo/bar/baz.txt'); // 输出: 'baz.txt'
path.dirname(path)返回路径中的目录部分。path.dirname('/foo/bar/baz.txt'); // 输出: '/foo/bar'
path.extname(path)返回路径中文件的扩展名。path.extname('/foo/bar/baz.txt'); // 输出: '.txt'
path.join([...paths])将多个路径拼接为一个路径,自动处理路径分隔符。path.join('/foo', 'bar', 'baz/asdf', 'quux', '..'); // 输出: '/foo/bar/baz/asdf'
path.resolve([...paths])将路径序列解析为绝对路径,从右到左依次处理每个路径片段,直到构建出一个绝对路径为止。path.resolve('/foo/bar', './baz'); // 输出: '/foo/bar/baz'
path.normalize(path)规范化路径,删除冗余的 ...,并根据当前操作系统替换路径分隔符。path.normalize('/foo/bar//baz/asdf/quux/..'); // 输出: '/foo/bar/baz/asdf'
path.isAbsolute(path)检查路径是否为绝对路径。path.isAbsolute('/foo/bar'); // 输出: true
path.relative(from, to)返回从 from 路径到 to 路径的相对路径。path.relative('/foo/bar/baz', '/foo/bar/qux'); // 输出: '../qux'
path.parse(path)将路径字符串解析为对象,包含 rootdirbaseextname 属性。path.parse('/home/user/dir/file.txt'); 输出:{ root: '/', dir: '/home/user/dir', base: 'file.txt', ...}
path.format(pathObject)将路径对象格式化为路径字符串,与 path.parse 相反。path.format({ root: '/', dir: '/home/user/dir', base: 'file.txt' }); // 输出: '/home/user/dir/file.txt'
path.sep提供当前操作系统的路径分隔符(POSIX 为 '/',Windows 为 '\')。console.log(path.sep); // 输出: '\' (Windows) 或 '/' (POSIX)
path.delimiter提供路径分隔符(环境变量中路径的分隔符),POSIX 为 :,Windows 为 ;console.log(path.delimiter); // 输出: ';' (Windows) 或 ':' (POSIX)

实例

创建 main.js 文件,代码如下所示:

实例

const path = require('path');

// 获取文件名
console.log('文件名:', path.basename('/foo/bar/baz.txt')); // 输出: 'baz.txt'

// 获取目录名
console.log('目录名:', path.dirname('/foo/bar/baz.txt')); // 输出: '/foo/bar'

// 获取扩展名
console.log('扩展名:', path.extname('/foo/bar/baz.txt')); // 输出: '.txt'

// 拼接路径
console.log('拼接路径:', path.join('/foo', 'bar', 'baz/asdf', 'quux', '..')); // 输出: '/foo/bar/baz/asdf'

// 解析绝对路径
console.log('绝对路径:', path.resolve('/foo/bar', './baz')); // 输出: '/foo/bar/baz'

// 规范化路径
console.log('规范化路径:', path.normalize('/foo/bar//baz/asdf/quux/..')); // 输出: '/foo/bar/baz/asdf'

// 判断是否为绝对路径
console.log('是否为绝对路径:', path.isAbsolute('/foo/bar')); // 输出: true

// 相对路径
console.log('相对路径:', path.relative('/foo/bar/baz', '/foo/bar/qux')); // 输出: '../qux'

// 解析路径为对象
const parsedPath = path.parse('/home/user/dir/file.txt');
console.log('解析路径为对象:', parsedPath);
// 输出: { root: '/', dir: '/home/user/dir', base: 'file.txt', ext: '.txt', name: 'file' }

// 将对象格式化为路径
const formattedPath = path.format(parsedPath);
console.log('格式化路径:', formattedPath); // 输出: '/home/user/dir/file.txt'

Node.js 工具模块Node.js 工具模块