node.js常用内置模块--Path

Path模块提供了用于处理文件和目录路径的实用程序。
在Mac OS、Linux和window上的路径是不一样的:

  • window上会使用\或者 \\来作为文件路径的分隔符,当然目前也支持/
  • Mac OS、Linux的Unix操作系统上使用/来作为文件路径的分隔符;

为了适应不同操作系统上路劲的差异,在开发中对于路劲的操作我们可以使用Path模块。
更多使用方式请查阅官网Path介绍。

一、 Path的引入

const path = require('path')

二、__dirname

获取当前文件所在文件夹的路劲

// 当前文件路劲
const currentPath =  __dirname
console.log(currentPath);
// /Users/zzcm/Desktop/node

三、 Path常见的API

path.dirname(path)获取文件的父文件夹;

const filePath = '/user/passer/node/passer.text'

//获取文件的父文件夹
const dirPath = path.dirname(filePath)
console.log(dirPath); ///user/passer/node

path.extname(path) 获取文件扩展名;

//获取文件的扩展名
const extname = path.extname(filePath)
console.log(extname); //.text

path.extname('index.html');
// Returns: '.html'

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

path.extname('index.');
// Returns: '.'

path.extname('index');
// Returns: ''

path.extname('.index');
// Returns: ''

path.extname('.index.md');
// Returns: '.md'

path.basename(path[, ext])获取文件名

//获取文件名
const baseName = path.basename(filePath)
console.log(baseName); //passer.text

path.parse(path)其属性表示路径的重要元素

// 获取到某个文件的信息(根、父文件夹、名字包含扩展名、扩展名 ,文件名字)
const parse = path.parse('/home/user/dir/file.txt');
console.log(parse);
//输出结果
//{
//  root: '/',
//  dir: '/home/user/dir',
//  base: 'file.txt',
//  ext: '.txt',
//  name: 'file'
// }

path.resolve([...paths])将一系列路径或路径段解析为绝对路径

  • 给定的路径序列从右到左进行处理,每个后续路径都预先加上前缀,直到构造出一个绝对路径。
  • 如果在处理所有给定的路径段之后,尚未生成绝对路径,则使用当前工作目录。
  • 生成的路径将被规范化,尾部的斜杠将被删除,除非将路径解析为根目录。
  • 忽略零长度路径段。
  • 如果没有传递路径段,path.resolve()将返回当前工作目录的绝对路径。

如果我们希望将某个文件和文件夹拼接,可以使用 path.resolve;

  • resolve函数会判断我们拼接的路径前面是否有 /或../或./;
  • 如果有表示是一个绝对路径,会返回对应的拼接路径;
  • 如果没有,那么会和当前执行文件所在的文件夹进行路径的拼接
const path1 = path.resolve('passer.txt'); 
const path2 =path.resolve('/passer.txt'); 
const path3 = path.resolve('/User/passer', 'passer.txt'); 
const path4 =path.resolve('User/passer', 'passer.txt'); 

// /Users/zzcm/Desktop/node/passer.txt
// /passer.txt
// /User/passer/passer.txt
// /Users/zzcm/Desktop/node/User/passer/passer.txt

path.join([...paths])路劲拼接

  • 使用平台特定的分隔符作为分隔符将所有给定的path段连接在一起,然后规范化结果路径。
  • 忽略零长度路path。如果联接的路径字符串是零长度字符串,则将返回“.”,表示当前工作目录。
const path5 = path.join('/user', 'passer', 'passer.txt')
console.log( path5);
//user/passer/passer.txt

path.join('/foo', 'bar', 'baz/asdf', 'quux', '..');
// Returns: '/foo/bar/baz/asdf'

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

更多使用方式请查阅官网Path介绍。

你可能感兴趣的:(node.js常用内置模块--Path)