解析node——Path模块

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对象
    • dir
    • root
    • base
    • name
    • ext
返回将对象中的属性拼接,但是不会像 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/') 返回false
6. 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 - 路径

  • 返回: 返回具有以下属性的对象

    • dir
    • root
    • base
    • name
    • ext
与 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\build
10. 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 = \
  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值