Node核心模块之Path

来源:互联网 发布:英语四级语法软件 编辑:程序博客网 时间:2024/05/18 00:35

Node核心模块之Path

Node.js V6.9.4
path模块被提供用来处理文件和目录的路径

path模块的默认操作根据Node运行的操作系统不同而有所不同,当在windows上运行时,使用windows样式的路劲,当在POSIX接口的系统上运行时,使用POSIX接口样式的路径

* const path = require(‘path’); *
1.path.basename(path[,ext])
* 返回最后的路径下的文件名 *

path.basename('/foo/bar/baz/asdf/quux.html')// Returns: 'quux.html'path.basename('/foo/bar/baz/asdf/quux.html', '.html')// Returns: 'quux'

2.path.delimiter
* 利用分隔符分割路径,windows分隔符为’;’,POSIX接口分隔符为’:’ *

//on POSIXconsole.log(process.env.PATH)// Prints: '/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin'process.env.PATH.split(path.delimiter)// Returns: ['/usr/bin', '/bin', '/usr/sbin', '/sbin', '/usr/local/bin']
//on Windowsconsole.log(process.env.PATH)// Prints: 'C:\Windows\system32;C:\Windows;C:\Program Files\node\'process.env.PATH.split(path.delimiter)// Returns: ['C:\\Windows\\system32', 'C:\\Windows', 'C:\\Program Files\\node\\']

3.path.dirname(path)
* 返回路径的文件目录 *

path.dirname('/foo/bar/baz/asdf/quux')// Returns: '/foo/bar/baz/asdf'

4.path.extname(path)

* 返回路径最后目录下的文件的扩展名 *

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

4.path.format(pathObject)
* 将路径对象格式化为一个路径字符串,与path.parse()作用相反 *

pathObject: {    dir: String,    root: String,    base: String,    name: String,    ext: String}
// on POSIX// 如果`dir``base`为空, 返回`${dir}${path.sep}${base}`path.format({  dir: '/home/user/dir',  base: 'file.txt'});// Returns: '/home/user/dir/file.txt'//如果`dir`为懂,则`root`为根目录path.format({  root: '/',  base: 'file.txt'});// Returns: '/file.txt'path.format({  root: '/',  name: 'file',  ext: '.txt'});// Returns: '/file.txt'path.format({  base: 'file.txt'});// Returns: 'file.txt'
//on Windowspath.format({    root : "C:\\",    dir : "C:\\path\\dir",    base : "file.txt",    ext : ".txt",    name : "file"});// Returns: 'C:\\path\\dir\\file.txt'

5.path.isAbsolute(path)
* 判断路劲是不是绝对路径 *

// on POSIXpath.isAbsolute('/foo/bar') // truepath.isAbsolute('/baz/..')  // truepath.isAbsolute('qux/')     // falsepath.isAbsolute('.')        // false
//on Windowspath.isAbsolute('//server')    // truepath.isAbsolute('\\\\server')  // truepath.isAbsolute('C:/foo/..')   // truepath.isAbsolute('C:\\foo\\..') // truepath.isAbsolute('bar\\baz')    // falsepath.isAbsolute('bar/baz')     // falsepath.isAbsolute('.')           // false

6.path.join([…paths]);
* 连接路径 *

path.join('/foo', 'bar', 'baz/asdf', 'quux', '..')// Returns: '/foo/bar/baz/asdf'path.join('foo', {}, 'bar')// throws TypeError: Arguments to path.join must be strings

7.path.normalize(path)
* 标准化给定路径 *

// on POSIXpath.normalize('/foo/bar//baz/asdf/quux/..')// Returns: '/foo/bar/baz/asdf'// on Windowspath.normalize('C:\\temp\\\\foo\\bar\\..\\');// Returns: 'C:\\temp\\foo\\'

8.path.parse(path)
* 将路径解析成对象 *

// on POSIXpath.parse('/home/user/dir/file.txt')// Returns:// {//    root : "/",//    dir : "/home/user/dir",//    base : "file.txt",//    ext : ".txt",//    name : "file"// }
// on Windowspath.parse('C:\\path\\dir\\file.txt')// Returns:// {//    root : "C:\\",//    dir : "C:\\path\\dir",//    base : "file.txt",//    ext : ".txt",//    name : "file"// }

8.path.relative(from, to)
* 返回从from到to的相对路径*

//on POSIXpath.relative('/data/orandea/test/aaa', '/data/orandea/impl/bbb')// Returns: '../../impl/bbb'
//on Windowspath.relative('C:\\orandea\\test\\aaa', 'C:\\orandea\\impl\\bbb')// Returns: '..\\..\\impl\\bbb'

9.path.resolve([…paths])
* 将路径解析为决定路径 *

path.resolve('/foo/bar', './baz')// Returns: '/foo/bar/baz'path.resolve('/foo/bar', '/tmp/file/')// Returns: '/tmp/file'path.resolve('wwwroot', 'static_files/png/', '../gif/image.gif')// if the current working directory is /home/myself/node,// this returns '/home/myself/node/wwwroot/static_files/gif/image.gif

10.path.sep
* 根据平台路径符讲路径分割为数组 *
\ on Window
/ on POSIX

// on POSIX'foo/bar/baz'.split(path.sep)// Returns: ['foo', 'bar', 'baz']// on Windows'foo\\bar\\baz'.split(path.sep)// Returns: ['foo', 'bar', 'baz']
0 0
原创粉丝点击