在
nodejs中,使用path内置模块处理路径、拼接路径,为开发提供了便利和程序的准确性。
在 commonjs中,安装node后直接 require进行导入即可
const path = require("path")
path模块的API解析:
1. basename()
返回最后一部分
path.basename(path, [,suffix])
path- 路径suffix- 要删除的后缀,(可选)
该方法返回 path 的最后一部分,并省略最后一部分的目录分隔符
例如:
path.basename('D:\zj\test.json') 返回 "test.json"
path.basename('D:\zj\test.json', '.json') 返回 "test"
2. dirname()
返回目录名
path.dirname(path)
path- 路径
该方法返回 path 的目录名,尾随的目录分隔符被忽略
例如:
path.dirname('D:\zj\test.json') 返回 "D:\zj"
3. extname()
返回后缀
path.extname(path)
path- 路径
方法返回 path 的后缀名,查找以 .已经后面的string,
如果path最后一部分没有.的话,或者除了第一个字符之外没有.的话,就返回空字符串
例如:
1. path.extname('D:\zj\test.json') 返回 ".json"
2. path.extname('.index') 返回 ""
3. path.extname('.index.md') 返回 ""
4. format()
拼接字符串
path.format(pathObject)
pathobject- 具有以下属性的js对象dirrootbasenameext
返回将对象中的属性拼接,但是不会像 path.join() 那样用自动识别用目录分隔符将路径参数拼接起来 但是: 1. 有 dir 则忽略 root 2. 有 base 则忽略 name 和 ext 例如: 1. path.format({ dir: '/zj', root: '/data', base: '/text.js', name: '/a.js', ext: '/b.js' }) 返回 "/zj/text.js" 2. path.format({ dir: '/zj', root: '/data', name: '/a', ext: '/b.js' }) 返回 "/zj/a/b.js"5. isAbsolute()
判断 path 是否为绝对路径
path.isAbsolute(path)
path
例如: 1. path.isAbsolute('C:\zj') 返回true 2. path.isAbsolute('zj/') 返回false6. join()
拼接路径
path.join([...paths])
...paths- 路径片段的序列
path.join()将根据所在的操作系统使用该平台的目录分隔符,规范化拼接路径 例如: 1. linux: path.join('a', 'b', 'c') 返回 "a/b/c" 2. windows: path.join('a', 'b', 'c') 返回 "a\b\c"7. normalize()
规范化给定的 path ,并会解析 .. 和 .
path.normalize(path)
path- 路径
注释: 1. 如果 path 里面有 .. 会解析到上级输出 2. 如果 path 里面有连续的 / 或者 \ ,会保留一个分隔符 例如: 1. path.normalize('/zj/data/a/..') 返回 "/zj/data" 2. path.normalize('C:////temp\\\\/\\/\\/foo/bar') 返回 "C:\\temp\\foo\\bar"8. parse()
返回解析 path ,返回对象为 path 的重要元素组成
path.parse(path)
-
path- 路径 -
返回: 返回具有以下属性的对象
dirrootbasenameext
与 path.format() 相反, 返回对象属性的含义: 例如 path="E:\\zj\\download\\info.txt", 1. root: 根目录,比如:windows下的 "E:\\" 或者 linux下的 "/" 2. dir: 目录,"E:\\zj\\download" 3. base: 文件名+后缀,"info.txt" 4. name: 返回文件名除后缀,"info" 5. ext: 返回后缀,".txt" 例如: path.parse("E:\zj\download\info.txt") 返回: { root: 'E:\\', dir: 'E:\\zj\\download', base: 'info.txt', ext: '.txt', name: 'info' }9. relative()
返回 from 到 to 的相对路径
path.relative(from, to)
from- 第一个路径to- 第二个路径
例如: path.relative("D:\\zj\\electron\\electron_vue", "D:\\zj\\electron\\grpc_electron\\build") 返回 ..\grpc_electron\build10. resolve()
返回绝对路径,如果拼接不成绝对路径则返回当前工作目录
path.resolve([...paths])
...paths- 路径或路径片段的序列
path.resolve()方法会从后向前去拼接绝对路径,直到从后向前找到绝对路径后,返回。 例如: 1. path.resolve('/foo/bar', './baz'); 返回 '/foo/bar/baz' 2. path.resolve('/foo/bar', '/tmp/file/'); 返回 '/tmp/file'11. sep
提供指定平台的 目录分隔符
path.sep
注释: 1. linux === / path.sep = / 2. windows === \ path.sep = \