NodeJS 之 path 模块

发布于 2024-11-04 07:39:17 字数 3959 浏览 2 评论 0

作用

path 模块提供了用于处理文件和目录路径的实用工具

系统与路径

  • 在 Linux 和 macOS 上,路径可能类似于 /users/joe/file.txt
  • 在 Windows 上则有所不同,具有类似以下的结构 \users\joe\file.txt

Windows 与 POSIX

path 模块的默认操作因运行 Node.js 应用程序的操作系统而异

// POSIX
path.basename('C:\\temp\\myfile.html')
// 'C:\\temp\\myfile.html'
// Windows
path.basename('C:\\temp\\myfile.html')
// 'myfile.html'

要在任何操作系统上使用 Windows 文件路径时获得一致的结果,请使用 path.win32

path.win32.basename('C:\\temp\\myfile.html')
// 'myfile.html'

要在任何操作系统上使用 POSIX 文件路径时获得一致的结果,请使用 path.posix

path.posix.basename('C:\\temp\\myfile.html')
// 'C:\\temp\\myfile.html'

path.basename(path[, ext])

返回 path 的最后一部分

path.basename('/foo/bar/baz/asdf/quux.html')
// 'quux.html'
path.basename('/foo/bar/baz/asdf/quux.html', '.html')
// 'quux'

Windows 通常以不区分大小写的方式处理文件名,包括文件扩展名,但此功能不会

path.win32.basename('C:\\foo.html', '.html')
// 'foo'
path.win32.basename('C:\\foo.HTML', '.html')
// 'foo.HTML'

path.delimiter

提供特定于平台的路径定界符

  • ; 对于 Windows
  • : 对于 POSIX

path.dirname(path)

返回目录部分

path.dirname('C:\\foo.html')
// 'C:\\'

path.extname(path)

返回扩展名

path.extname('index.html')
// '.html'
path.extname('index.coffee.md')
// '.md'
path.extname('index.')
// '.'
path.extname('index')
// ''
path.extname('.index')
// ''
path.extname('.index.md')
// '.md'

path.format(pathObject)

path.format({
dir: 'C:\\path\\dir',
base: 'file.txt'
})
// 'C:\\path\\dir\\file.txt'

path.isAbsolute(path)

确定是否为绝对路径

path.join([...paths])

使用特定于平台的分隔符作为分隔符将所有给定的段连接在一起,然后对结果路径进行规范化 零长度段将被忽略

path.join('/foo', 'bar', 'baz/asdf', 'quux', '..')
// '\\foo\\bar\\baz\\asdf'
path.join('/foo', 'bar', 'baz/asdf', 'quux', '.')
// '\\foo\\bar\\baz\\asdf\\quux'

path.normalize(path)

对给定的 path 进行规范化

path.normalize('C:\\temp\\\\foo\\bar\\..\\')
// 'C:\\temp\\foo\\'

path.parse(path)

path.parse('C:\\path\\dir\\file.txt')
// {
//  root: 'C:\\',
//  dir: 'C:\\path\\dir',
//  base: 'file.txt',
//  ext: '.txt',
//  name: 'file'
// }
// ┌─────────────────────┬────────────┐
// │          dir        │    base    │
// ├──────┬              ├──────┬─────┤
// │ root │              │ name │ ext │
// " C:\      path\dir   \ file  .txt "
// └──────┴──────────────┴──────┴─────┘

path.relative(from, to)

path.relative('/data/orandea/test/aaa', '/data/orandea/impl/bbb')
// Returns: '../../impl/bbb'

path.resolve([...paths])

  • 将一系列路径或路径段解析为绝对路径
  • 从右到左处理,直到构造出绝对路径为止
  • 处理到最后如果尚未生成绝对路径,则使用当前工作目录
javascript path.resolve('/foo/bar', './baz') // '/foo/bar/baz'</li>

path.resolve('/foo/bar', '/tmp/file/') // '/tmp/file'
path.resolve('wwwroot', 'static_files/png/', '../gif/image.gif')
// If the current working directory is /home/myself/node,
// '/home/myself/node/wwwroot/static_files/gif/image.gif'

path.sep

提供特定于平台的路径段分隔符

  • \ 在 Windows 上
  • / 在 POSIX 上
// posix 'foo/bar/baz'.split(path.sep) // ['foo', 'bar', 'baz']
// Windows 'foo\bar\baz'.split(path.sep) // ['foo', 'bar', 'baz']

在 Windows 上,正斜杠(/)和反斜杠(\)均被接受为路径段分隔符。但是,这些 path 方法仅添加反斜杠(\) :::

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

梦断已成空

暂无简介

0 文章
0 评论
22 人气
更多

推荐作者

玍銹的英雄夢

文章 0 评论 0

我不会写诗

文章 0 评论 0

十六岁半

文章 0 评论 0

浸婚纱

文章 0 评论 0

qq_kJ6XkX

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文