Node.js的路径模块提供了与文件路径互动的有用功能
path 模块提供了很多非常有用的功能来访问文件系统并与之互动。
没有必要安装它。作为Node核心的一部分,它可以通过要求它来使用。
const path = require('path')
该模块提供了path.sep ,它提供了路径段分离器(Windows上的\ ,Linux/macOS上的/ ),以及path.delimiter ,它提供了路径分隔符(Windows上的; ,Linux/macOS上的: )。
这些是path 方法。
path.basename()path.dirname()path.extname()path.isAbsolute()path.join()path.normalize()path.parse()path.relative()path.resolve()
path.basename()
返回一个路径的最后部分。第二个参数可以过滤掉文件扩展名。
require('path').basename('/test/something') //something
require('path').basename('/test/something.txt') //something.txt
require('path').basename('/test/something.txt', '.txt') //something
path.dirname()
返回路径中的目录部分。
require('path').dirname('/test/something') // /test
require('path').dirname('/test/something/file.txt') // /test/something
path.extname()
返回路径的扩展名部分
require('path').extname('/test/something') // ''
require('path').extname('/test/something/file.txt') // '.txt'
path.isAbsolute()
如果是绝对路径则返回true
require('path').isAbsolute('/test/something') // true
require('path').isAbsolute('./test/something') // false
path.join()
连接一个路径的两个或多个部分。
const name = 'flavio'
require('path').join('/', 'users', name, 'notes.txt') //'/users/flavio/notes.txt'
path.normalize()
试图计算实际的路径,当它包含相对指定符,如. 或.. ,或双斜杠。
require('path').normalize('/users/flavio/..//test.txt') ///users/test.txt
path.parse()
解析一个对象的路径和组成它的片段。
root:根目录dir: 从根开始的文件夹路径base: 文件名+扩展名name:文件名ext:文件扩展名
例子。
require('path').parse('/users/test.txt')
结果是
{
root: '/',
dir: '/users',
base: 'test.txt',
ext: '.txt',
name: 'test'
}
path.relative()
接受2个路径作为参数。基于当前工作目录,返回从第一个路径到第二个路径的相对路径。
例子。
require('path').relative('/Users/flavio', '/Users/flavio/test.txt') //'test.txt'
require('path').relative('/Users/flavio', '/Users/flavio/something/test.txt') //'something/test.txt'
path.resolve()
你可以用path.resolve() ,得到相对路径的绝对路径计算。
path.resolve('flavio.txt') //'/Users/flavio/flavio.txt' if run from my home folder
通过指定第二个参数,resolve 将把第一个参数作为第二个参数的基础。
path.resolve('tmp', 'flavio.txt')//'/Users/flavio/tmp/flavio.txt' if run from my home folder
如果第一个参数以斜线开头,这意味着它是一个绝对路径。
path.resolve('/etc', 'flavio.txt')//'/etc/flavio.txt'