Node.js的Path对象

node.js中的path对象,用于处理目录的对象,提高开发效率。
用node.js的path命令,与使用 Linux 下的shell 脚本命令相似。

首先要引入 path 对象:

var path = require('path');

比较实用的一些方法:

1. 格式化路径

path.normalize(p)
特点:将不符合规范的路径格式化,简化开发人员中处理各种复杂的路径判断

示例:

path.normalize('/foo/bar//baz/asdf/quux/..');
=> '/foo/bar/baz/asdf'

2. 路径合并

path.join( [path1], [path2], [...] );
特点:将所有名称用 path.sep 串联起来,然后用 normalize 格式化
示例:

path.join( '///foo', 'bar', '//baz/asdf', 'quux', '..' );
=> '/foo/bar/baz/asdf'

3. 路径寻航

path.resolve( [form ...], to );
特点:相当于不断的调用系统的 cd 命令
示例:

path.resolve( 'foo/bar', '/tmp/file/', '..', 'a/../subfile' )

// 相当于
cd foo/bar
cd /tmp/file
cd ..
cd a/../subfile
pwd

4. 相对路径

path.relative( from, to )
特点:返回某个路径下相对于另一个路径的相对位置串
相当于:path.resolve( from, path.relative( from, to ) ) == path.resolve(to)
示例:

path.relative( 'C:\\orandea\\test\\aaa', 'C:\\orandea\\impl\\bbb' );
=> '..\\..\impl\\bbb'

path.relative( '/data/orandea/test/aaa', '/data/orandea/impl/bbb' );
=> '../../impl/bbb'

5. 文件夹名称

path.dirname(p)
特点:返回路径的所在的文件夹名称
示例:

path.dirname( '/foo/bar/baz/asdf/quux')
=> '/foo/bar/baz/asdf'

6. 文件名称

path.basename( p, [ext] )
特点:返回指定的文件名,返回结果可排除[ext]后缀字符串
示例:

path.basename( '/foo/bar/baz/asdf/quux.html' );
=> 'quux.html'

path.basename( '/foo/bar/baz/asdf/quux.html', '.html' );
=> 'quux'

7. 扩展名称

path.extname( p )
特点:返回指定文件名的扩展名称
示例:

path.extname( 'index.html' );
=> '.html'

path.extname( 'index.' );
=> '.'

path.extname( 'index' );
=> ''

8. 特定平台的文件分隔符

path.sep
特点:获取文件路径的分隔符,主要是与操作系统相关
示例:
linux:

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

window:

'foo\\bar\\baz'.split( path.sep )
=> ['foo', 'bar', 'baz']

9. 特定平台上的路径分隔符

path.delimiter
;或者:
示例:
linux:

process.env.PATH.split( path.delimiter )
// returns
['/usr/bin', '/bin', 'usr/sbin', '/sbin', '/usr/local/bin' ]

window:

console.log( process.env.PATH )
// 'C:\Windows\system32;C\windows;C:\Program Files\nodejs\'

process.env.PATH.split( path.delimiter )
// returns
['C:\Windows\system32', 'C:\Windows', 'C:\Program Files\nodejs\']

你可能感兴趣的:(Node.js的Path对象)