node_path路径模块

path路径模块

一. path模块作用

用于处理文件和目录的路径

二. path方法

(1) path.join([...paths])拼接路径

path.join()方法使用平台特定的分隔符把全部给定的path片段拼接到一起, 并规范化生成路径

  1. 参数说明:
    • ...paths: String 一个路径片段的序列
      • 长度为零的path片段会被忽略. 如果连接后的路径字符串是一个长度为零的字符串, 则返回., 表示当前工作目录
      • 如果片段为.., 则忽略前一个

(2) path.basename(paht[,ext])返回文件名称

返回path的最后一部分(文件名称)

  1. 参数说明:

    • path: string 路径.
    • ext: string 可选的文件扩展名
  2. 案例:

    const path = require("path")
    let baseName = path.basename('./files/1.txt')
    let baseName1 = path.basename('./files/1.txt', '.txt')
    console.log(baseName) //1.txt
    console.log(baseName1) //1
    
  3. 不同环境的区别

    • POSIX: C:\\files\\1.txt
    • Windows: 1.txt

    统一操作系统上的结果, 可以使用path.posix

    path.posix.baseName('./files/1.txt')
    

(3) path.delimiter 路径分隔符

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

  • Windows上是;

  • POSIX是:

    let url = "C:\\Windows\\system32;C:\\Windows\\system32"
    console.log(path.delimiter) //;
    console.log(url.split(path.delimiter)) //[ 'C:\\Windows\\system32', 'C:\\Windows\\system32' ]
    

(4) path.dirname(path) 目录名

let url1 = "C:\\Windows\\system32;"
let dirname = path.dirname(url1)
console.log(dirname) //c:\Windows

(5) path.extname(path) path扩展名

返回path的扩展名, 即path最后一部分的最后一个.(句号)字符到字符串结束.

let url1 = "C:\\Windows\\system32\\node\\files\\1.txt"
let extname = path.extname(url1)
console.log(extname) //.txt
console.log(path.extname('index.')) // .
console.log(path.extname('index')) // ''
console.log(path.extname('.index')) // ''

(6) path.sep 路径片段分隔符

平台特定的路径片段分隔符

  • Windows上是\

  • POSIX上是/

    let url1 = "C:\\Windows\\system32\\node\\files\\1.txt"
    let sep = path.sep
        // console.log(sep) // '\'
    console.log(url1.split(sep)) //[ 'C:', 'Windows', 'system32', 'node', 'files', '1.txt' ]
    

(7) path.parse(path) path字符串返回path对象

path.parse(path)方法返回一个对象, 对象的属性表示path的元素. 尾部文件分割符会被忽略.

  1. 返回对象的属性

    • dir: 目录名

    • root: 根目录

    • base: 带扩展名的文件名

    • name: 名称

    • ext: 扩展名

      ┌─────────────────────┬────────────┐
      │          dir        │    base    │
      ├──────┬              ├──────┬─────┤
      │ root │              │ name │ ext │
      "  /    home/user/dir / file  .txt "
      └──────┴──────────────┴──────┴─────┘
      (请无视以上字符串中的空格,它们只是为了布局)
      
    let parse = path.parse(url1)
        // console.log(parse)
        /**
         {
          root: 'C:\\',
          dir: 'C:\\Windows\\system32\\node\\files',
          base: '1.txt',
          ext: '.txt',
          name: '1'
        }
         */
    

(8) path.format(pathObject)

会从一个对象返回一个路径字符串

  1. 注意点:

    • 如果提供了pathObject.dir, 则pathObject.root会被忽略
    • 如果提供了pathObject.base存在, 则pathObject.extpathObject.name会被忽略
    let formatObj = {
        dir: 'c:\\path',
        base: "1.txt"
    }
    console.log(path.format(formatObj)) //c:\path\1.txt
    

(9) path.isAbsolute(path): 是否为绝对路径

判定path是否为一个绝对路径. 如果给定的path是一个长度为零的字符串, 则返回false

path.isAbsolute('//server');    // true
path.isAbsolute('\\\\server');  // true
path.isAbsolute('C:/foo/..');   // true
path.isAbsolute('C:\\foo\\..'); // true
path.isAbsolute('bar\\baz');    // false
path.isAbsolute('bar/baz');     // false
path.isAbsolute('.');           // false

(10) path.normalize(path): 规范化给定的path

规范化给定的path, 并解析...片段

let normalize = path.normalize('c:\\temp\\\\foo\\bar')
console.log(normalize)//c:\temp\foo\bar

(11) path.relative(from, to): 从from到to的相对路径

path.relative()方法返回从fromto的相对路径(基于当前工作目录). 如果fromto传入了一个长度为零的字符串, 则当前工作目录会被用于代替长度为零的字符串

let relative = path.relative('./files/1.txt', './fs.js')
console.log(relative) // '..\..\fs.js'

(12) path.resolve([...paths])绝对路径

...paths一个路径或路径片段的序列, resolve把序列解析为一个绝对路径

  • 给定的路径的序列是从右往左被处理的, 后面每个path被依次解析, 直到构造完成一个绝对路径.
  • 如果处理完全部的path片段后还未生成一个绝对路径, 则当前工作目录会被用上
  • 生成的路径是规范化后的, 且末尾的斜杠会被删除, 除非路径被解析为根目录
  • 长度为零的path片段会被忽略
  • 如果没有传入path片段, 则path.resolve()会返回当前工作目录的绝对路径
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值