nodejs-path常用api

path.basename(path[, ext]) 

path.basename() 方法会返回 path 的最后一部分(返回文件名称[.ext]),类似于 Unix 的 basename 命令。 尾部的目录分隔符会被忽略,参见 path.sep

如果 path 不是字符串、或给定了 ext 但不是字符串,则抛出 TypeError

path.basename('/目录1/目录2/文件.html');
// 返回: '文件.html'

path.basename('/目录1/目录2/文件.html', '.html');
// 返回: '文件'
path.basename('/目录1/目录2/文件.HTML', '.html');
// 返回: '文件.HTML'
 

path.dirname(path)

path.dirname() 方法会返回 path 的目录名,类似于 Unix 的 dirname 命令。 尾部的目录分隔符会被忽略,参见 path.sep

如果 path 不是字符串,则抛出 TypeError

path.dirname('/目录1/目录2/目录3');
// 返回: '/目录1/目录2'

path.extname(path)

返回 path 的扩展名

如果在 path 的最后一部分中没有 .,或者如果 path 的基本名称(参见 path.basename())除了第一个字符以外没有 .,则返回空字符串。

如果 path 不是字符串,则抛出 TypeError

path.extname('index.html');
// 返回: '.html'

path.extname('index.coffee.md');
// 返回: '.md'

path.extname('index.');
// 返回: '.'

path.extname('index');
// 返回: ''

path.extname('.index');
// 返回: ''

path.extname('.index.md');
// 返回: '.md'

path.format(pathObject)

path.format() 方法从对象返回路径字符串。 与 path.parse() 相反。

当为 pathObject 提供属性时,注意以下组合,其中一些属性优先于另一些属性:

  • 如果提供了 pathObject.dir,则忽略 pathObject.root
  • 如果 pathObject.base 存在,则忽略 pathObject.ext 和 pathObject.name

`[${dir} or ${root}]${path.sep}[${base} or ${name}.${ext}]`

在POSIX上:

// `root` 会被忽略。
path.format({
  root: '/ignored',
  dir: '/home/user/dir',
  base: 'file.txt'
});
// 返回: '/home/user/dir/file.txt'

// `ext` 将被忽略。
path.format({
  root: '/',
  base: 'file.txt',
  ext: 'ignored'
});
// 返回: '/file.txt'

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

在 Windows 上:

path.format({
  dir: 'C:\\path\\dir',
  base: 'file.txt'
});
// 返回: 'C:\\path\\dir\\file.txt'

path.parse(path) 

path.parse() 方法会返回一个对象,其属性表示 path 的有效元素。 尾部的目录分隔符会被忽略,参见 path.sep

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

path.isAbsolute(path)

  • 检测 path 是否为绝对路径

如果给定的 path 是零长度字符串,则返回 false

path.relative(from, to)

返回to相对于form的相对路径

path.join([...paths])

path.join() 方法会将所有给定的 path 片段连接到一起(使用平台特定的分隔符作为定界符),然后规范化生成的路径。

长度为零的 path 片段会被忽略。 如果连接后的路径字符串为长度为零的字符串,则返回 '.',表示当前工作目录。

path.join('/目录1', '目录2', '目录3/目录4', '目录5', '..');
// 返回: '/目录1/目录2/目录3/目录4'

path.join('目录1', {}, '目录2');
// 抛出 'TypeError: Path must be a string. Received {}'

 

posted @ 2021-01-02 15:45  baixinL  阅读(126)  评论(0编辑  收藏  举报