Path模块的官方介绍在此: https://nodejs.org/dist/latest-v6.x/docs/api/path.html
path.normalize(path)
参数值为需要被转换的路径字符串。
该方法将非标准路径字符串转换为标准路径字符串,在转换过程中执行以下处理:
1) 解析路径字符串中的”..”字符串与”.”字符串,返回解析后的标准路径;
2) 将多个斜杠字符串转换为一个斜杠字符串,例如将”//”转换为”/”;
3) 将Windows操作系统中的反斜杠字符串转换为正斜杠字符串;
4) 如果路径字符串以斜杠字符串结尾,则在转换后的完整路径字符串末尾保留该斜杠字符串。
例如:
console.log(path.normalize(".//a//b//d//..//c/e//..//")); // a/b/c
path.join([path1] [, path2] [...])
该方法将多个参数值字符串结合为一个路径字符串。
例如:
console.log(path.join("a", "b", "c", "..", "d")); // a/b/d
path.resolve(path1, [, path2] [...])
该方法以应用程序根目录为起点,根据所有的参数值字符串解析出一个绝对路径。
path.relative([from,] to)
用于获取两个路径之间的相对关系。如果在代码中降低一个路径视为当前路径,则使用相对路径来指定第二个路径时应该使用的表达式。
在Windows操作系统中这两个路径应该位于同一个硬盘分区中,否则方法直接返回第二个参数值路径的绝对路径。
例如:
path.relative('/data/orandea/test/aaa', '/data/orandea/impl/bbb') // 返回'../../impl/bbb'
path.dirname(path)
该方法用于获取一个路径中的目录名。当参数值为目录路径时,返回该目录的上层目录;当参数值为文件路径时,返回该文件所在目录。
path.basename(path [, ext])
该方法用于获取一个路径中的文件名。
例如:
path.basename('/foo/bar/baz/asdf/quux.html', '.html') // 返回quux path.basename('/foo/bar/baz/asdf/quux.html', 'html') // 返回quux.
path.extname(path )
该方法用于获取一个路径中的扩展名。
path.isAbsolute(path)
判定path是否为绝对路径。一个绝对路径总是指向一个相同的位置,无论当前工作目录是在哪里。
例如:
path.isAbsolute('/foo/bar') // true path.isAbsolute('/baz/..') // true path.isAbsolute('//server') // true path.isAbsolute('C:/foo/..') // true path.isAbsolute('qux/') // false path.isAbsolute('.') // false
属性值为操作系统指定的文件分隔符,可能的属性值为”//”(在Windows操作系统中)或”/”(在UNIX操作系统中)。
*nix 上的例子:
'foo/bar/baz'.split(path.sep) // ['foo', 'bar', 'baz']
Windows 上的例子:
'foo//bar//baz'.split(path.sep) // ['foo', 'bar', 'baz']
属性值为操作系统指定的路径分隔符,可能的属性值为”;”(在Windows操作系统中)或”:”(在UNIX操作系统中)。
*nix 上的例子:
process.env.PATH.split(path.delimiter) // ['/usr/bin', '/bin', '/usr/sbin', '/sbin', '/usr/local/bin']
Windows 上的例子:
console.log(process.env.PATH) // 'C:/Windows/system32;C:/Windows;C:/Program Files/nodejs/' process.env.PATH.split(path.delimiter) // ['C:/Windows/system32', 'C:/Windows', 'C:/Program Files/nodejs/']