转载

Node.js学习笔记:路径操作

Path模块的官方介绍在此: https://nodejs.org/dist/latest-v6.x/docs/api/path.html

path.normalize(path)

path.normalize(path)

参数值为需要被转换的路径字符串。

该方法将非标准路径字符串转换为标准路径字符串,在转换过程中执行以下处理:

1) 解析路径字符串中的”..”字符串与”.”字符串,返回解析后的标准路径;

2) 将多个斜杠字符串转换为一个斜杠字符串,例如将”//”转换为”/”;

3) 将Windows操作系统中的反斜杠字符串转换为正斜杠字符串;

4) 如果路径字符串以斜杠字符串结尾,则在转换后的完整路径字符串末尾保留该斜杠字符串。

例如:

console.log(path.normalize(".//a//b//d//..//c/e//..//"));
// a/b/c

path.join()

path.join([path1] [, path2] [...])

该方法将多个参数值字符串结合为一个路径字符串。

例如:

console.log(path.join("a", "b", "c", "..", "d"));
// a/b/d

path.resolve()

path.resolve(path1, [, path2] [...])

该方法以应用程序根目录为起点,根据所有的参数值字符串解析出一个绝对路径。

path.relative()

path.relative([from,] to)

用于获取两个路径之间的相对关系。如果在代码中降低一个路径视为当前路径,则使用相对路径来指定第二个路径时应该使用的表达式。

在Windows操作系统中这两个路径应该位于同一个硬盘分区中,否则方法直接返回第二个参数值路径的绝对路径。

例如:

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

path.dirname()

path.dirname(path)

该方法用于获取一个路径中的目录名。当参数值为目录路径时,返回该目录的上层目录;当参数值为文件路径时,返回该文件所在目录。

path.basename()

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.extname(path )

该方法用于获取一个路径中的扩展名。

path.isAbsolute()

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

path.sep属性

属性值为操作系统指定的文件分隔符,可能的属性值为”//”(在Windows操作系统中)或”/”(在UNIX操作系统中)。

*nix 上的例子:

'foo/bar/baz'.split(path.sep)
// ['foo', 'bar', 'baz']

Windows 上的例子:

'foo//bar//baz'.split(path.sep)
// ['foo', 'bar', 'baz']

path.delimiter属性

属性值为操作系统指定的路径分隔符,可能的属性值为”;”(在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/']
原文  http://www.dengzhr.com/frontend/node-js/850
正文到此结束
Loading...