NodeJS 之 path 模块
作用
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 技术交流群。
上一篇: NodeJS 之 fs 模块常用方法
下一篇: TypeScript 常见问题
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论