feng xiaohan

path

前言

path 在不同的操作系统是有差异的。

posix(unix,likeunix,linux,macOs,windows wsl)

可移植操作系统接口,这是一套标准,为了保证不同遵循它的操作系统的可移植性。

例如:启动一个进程调用 fork 函数,大家都调用这个。

  • 路径分隔符使用正斜杠(/)。

windows

不遵守 posix。

  • 路径分隔符使用反斜杠(\)。

api

__dirname:当前运行文件所在目录(绝对路径)
__filename:当前运行文件所在目录的执行文件(绝对路径)

basename

返回指定路径的最后一个(文件/文件夹)名

const path = require("node:path");

console.1og(path.basename('/foo/bar/baz/asdf/xm.html')) // xm.html
console.1og(path.basename('\\foo\\bar\\baz\\asdf\\xm.html')) // xm.html
console.1og(path.posix.basename('/foo/bar/baz/asdf/xm.html')) // ×
console.1og(path.win32.basename('/foo/bar/baz/asdf/xm.html')) // xm.html

注意:winddows 兼容正反斜杆写法,posix 不兼容。

dirname

返回指定路径的目录(不含最后一个(文件/文件夹)名。)。

console.1og(path.dirname('/foo/bar/baz/asdf/xm.html')) // ../foo/bar/baz/asdf

extname

返回路径的扩展名。如果是文件夹则返回为空。

join

拼接路径。支持操作符。

../。栈

resolve

解析路径,返回绝对路径。

注意:多个路径返回最后一个。(_根据拼接路径的数量和类型会有差异_)

parse(format)

解析路径,以对象形式。

console.1og(path.parse('/home/file.txt'))
const res = {
  root: '/',
  dir: 'home',
  base: 'file.txt',
  ext: '.txt',
  name: 'file'
}

format(parse)

parse 逆向操作。

sep

返回操作系统的路径分隔符。可用于实现跨平台