Node.js Path模块笔记

Path模块提供了一些用于处理文件路径的小工具,可以通过以下方式引入该模块:

const path = require("path")
console.log(Object.keys(path))

引入后得到一个对象,对象的属性(包含方法)见下图:
在这里插入图片描述

我用的系统是windows,这里值记录windows系统的执行结果

方法

path.normalize(path)

规范化路径,并解析 ‘…’ 和 ‘.’ 片段。

console.log(path.normalize('../data//users.json')) // ..\data\users.json

path.parse(pathString)

返回路径字符串的对象。
path.parse() 方法返回一个对象,对象的属性表示 path 的元素。

  • root 根目录
  • dir 目录名(不包括文件名)
  • base 文件名(包含扩展名)
  • name 文件名(不包含扩展名)
  • ext 扩展名
console.log(path.parse('../data/users.json'))
console.log(path.parse('D:\\app\\node-app\\data\\users.json'))

在这里插入图片描述

path.dirname(path)

返回path 的目录名

path.basename(path[, ext])

返回路径中的最后一部分。ext为扩展名,加了后就不返回扩展名

path.extname(path)

返回路径中文件的扩展名。

const path = require('path')
const p = '/data/json/users.json'
console.log('path.parse()返回路径字符串的对象:',path.parse(p))
console.log('path.dirname()返回路径中的目录名:',path.dirname(p))
console.log('path.basename()返回路径中的最后一部分:',path.basename(p))
console.log('path.basename()返回路径中的最后一部分,指定了扩展名:',path.basename(p,'.json'))
console.log('path.extname()返回路径中的文件扩展名:',path.extname(p))

在这里插入图片描述

path.format(pathObject)

从对象中返回路径字符串,功能与与 path.parse()相反。

这些属性存在优先级

  • 如果提供了dir ,则忽略 root
  • 如果 base 存在,则忽略ext 和 name
console.log(path.format({
  root:'root',
  dir:'/data',
  base:'users.json',
  name:'users2',
  ext:'./json2'
}))

打印出:/data\users.json

path.isAbsolute(path)

判断参数 path 是否是绝对路径。

path.relative(from, to)

用于将绝对路径转为相对路径,返回从 from 到 to 的相对路径(基于当前工作目录)。

path.relative('/data/a','/data') // ..
path.relative('/data/a','/data/a') // 空字符串
path.relative('/data/a','/data/a/b') // b
path.relative('/data/a','/data/b')  // ..\b

path.join([…paths])

用于连接路径,并规范化生成的路径。

path.join('a','b','c')  // a\b\c
path.join('a','b','../c','users.json')  // a\c\users.json

path.resolve([…paths])

将路径或路径片段的序列解析为绝对路径(给定的路径序列从右到左进行处理,每个后续的 path 前置,直到构造出一个绝对路径)
无参数返回当前工作目录

path.resolve() // D:\app\node-app(当前工作目录)
path.resolve('/data/json') // D:\data\json
path.resolve('/data/json','a') // D:\data\json\a
path.resolve('/data/json','../a') // D:\data\a
path.resolve('/data/json','/a','b') // D:\a\b
path.resolve('/data/json','/a','../b') // D:\b

属性

path.sep

返回平台的文件路径分隔符,’\’ 或 ‘/’。

path.delimiter

平台的分隔符, ; or ‘:’.

path.posix

提供上述 path 的方法,不过总是以 posix 兼容的方式交互。

path.win32

path.win32 属性提供了 path 方法针对 Windows 的实现。
注意:在 Windows 上,斜杠字符(/)和反斜杠字符(\)都可作为路径分隔符; 但返回值中只用到反斜杠(\)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值