美文网首页
node之path模块

node之path模块

作者: imakan | 来源:发表于2018-11-01 17:56 被阅读0次

path模块提供了一些工具函数,用于处理文件与目录的路径

const path = require('path')

path.basename(path[,ext])

  • path
  • ext
  • 返回string
    path.basename()返回path的最后一个部分

path.delimiter

返回平台特定的路径分隔符

path.dirname(path)

path.dirname方法返回一个path的目录名,类似于Unix中的dirname命令

path.extname(path)

path.extname()方法返回path的扩展名,即从path的最后一部分中的最后一个.字符到字符串结束。

path.format(pathObject)

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

当pathObject提供的属性有组合时,有些属性的优先级比其他的高

  • 如果提供了pathObject.dir,则pathObject.root会被忽略
  • 如果提供了pathObject.base存在,则pathObject.ext和pathObject.name会被忽略
// 如果提供了 `dir`、`root` 和 `base`,则返回 `${dir}${path.sep}${base}`。
// `root` 会被忽略。
path.format({
  root: '/ignored',
  dir: '/home/user/dir',
  base: 'file.txt'
});
// 返回: '/home/user/dir/file.txt'

// 如果没有指定 `dir`,则 `root` 会被使用。
// 如果只提供了 `root` 或 `dir` 等于 `root`,则平台的分隔符不会被包含。
// `ext` 会被忽略。
path.format({
  root: '/',
  base: 'file.txt',
  ext: 'ignored'
});
// 返回: '/file.txt'

// 如果没有指定 `base`,则 `name` + `ext` 会被使用。
path.format({
  root: '/',
  name: 'file',
  ext: '.txt'
});
// 返回: '/file.txt'

path.isAbsolute(path)

path.isAbsolute()方法会判定path是否是一个绝对路径

path.join([...paths])

  • ...path 一个路径片段的序列
    path.join()方法使用平台特定的分隔符把全部给定的path片段连接到一起,并规范化生成的路径
    长度为零的字符串,则返回'.',表示当前工作目录
path.join('/foo', 'bar', 'baz/asdf', 'quux', '..');
// 返回: '/foo/bar/baz/asdf'

path.join('foo', {}, 'bar');
// 抛出 'TypeError: Path must be a string. Received {}'

如果任一路径片段不是一个字符串,则抛出 TypeError

path.normalize(path)

path.normalize()方法会规范化给定的path,并解析'...''.'片段

path.parse(path)

返回一个对象,对象的属性表示path的元素。尾部文件分隔符会被忽略,返回的对象有以下属性

path.parse('/home/user/dir/file.txt');
// 返回:
// { root: '/',
//   dir: '/home/user/dir',
//   base: 'file.txt',
//   ext: '.txt',
//   name: 'file' }

path.relative(from,to)

path.relative方法返回从fromto的相对路径(基于当前工作目录)。如果fromto各自解析到同一路径,(调用path.resolve()),则返回一个长度为零的字符串

path.relative('/data/orandea/test/aaa', '/data/orandea/impl/bbb')

path.resolve([...paths])

path.resolve()该方法会把一个路径或者路径片段解析成一个绝对路径。
给定的路径的序列是从右往左被处理的,后面每个path被依次解析,直到构造完成一个绝对路径。

path.resolve('/foo/bar', './baz');
// 返回: '/foo/bar/baz'

path.resolve('/foo/bar', '/tmp/file/');
// 返回: '/tmp/file'

path.resolve('wwwroot', 'static_files/png/', '../gif/image.gif');
// 如果当前工作目录为 /home/myself/node,
// 则返回 '/home/myself/node/wwwroot/static_files/gif/image.gif'

path.sep

提供了平台特定的路径片段分割符
Windows 上是
POSIX 上是 /
例如,在 POSIX 上:

'foo/bar/baz'.split(path.sep);
// 返回: ['foo', 'bar', 'baz']

在 Windows 上:

'foo\\bar\\baz'.split(path.sep);
// 返回: ['foo', 'bar', 'baz']

相关文章

网友评论

      本文标题:node之path模块

      本文链接:https://www.haomeiwen.com/subject/tgexxqtx.html