Node.js 初识 Path 模块
Node.js 提供了一些处理 文件/文件夹 路径的公用方法,可以这样引入:
varpath=require('path');
path.basename(path[, ext]) ---> 返回值:String
path.basename() 方法返回路径的最后一部分,与 Unix 的 basename 命令相似
参数:
path:String
ext:String,可选的文件拓展名,如果提供了ext 参数,则返回值中不包括拓展名
当 path不是一个字符串或者提供了ext 但不是字符串时,会报错TypeError
path.basename('/foo/bar/baz/asdf/quux.html')//Returns:'quux.html'path.basename('/foo/bar/baz/asdf/quux.html','.html')//Returns:'quux'
path.dirname(path) ---> 返回值:String
path.dirname()方法返回的是路径的目录名,与 Unix 中的 dirname 相似
参数:
path:String
如果 path不是字符串,将会抛出 TypeError
错误
path.dirname('/foo/bar/baz/asdf/quux')//Returns:'/foo/bar/baz/asdf'
path.extname(path) ---> 返回值:String
path.extname()方法返回的是路径的拓展名,从路径中的最后一个“.”到最后一个字符,如果最后一部分没有“.”,或者路径中 basename的第一个字符是“.”,那么,将返回一个空字符串
参数:
path:String
如果path不是字符串,将会抛出TypeError
错误
例如:
path.extname('index.html')//Returns:'.html'path.extname('index.coffee.md')//Returns:'.md'path.extname('index.')//Returns:'.'path.extname('index')//Returns:''path.extname('.index')//Returns:''
path.format(pathObject)---> 返回值:String
path.format()方法从对象中返回一个路径的字符串,与 path.parse()
相反
参数:
pathObject :Object
dir:String
root:String
base:String
name:String
ext:String
例如:
path.format({root:"C:\\",dir:"C:\\path\\dir",base:"file.txt",ext:".txt",name:"file"});//Returns:'C:\\path\\dir\\file.txt'
path.isAbsolute(path) ---> 返回值:Boolean
path.isAbsolute()方法用来判断 path是不是绝对路径
参数:
path:String
如果给出的 path是一个 0 长度的字符串,将返回 false;如果 path不是一个字符串,将会抛出TypeError
错误
例如:Windows 系统
path.isAbsolute('//server')//truepath.isAbsolute('\\\\server')//truepath.isAbsolute('C:/foo/..')//truepath.isAbsolute('C:\\foo\\..')//truepath.isAbsolute('bar\\baz')//falsepath.isAbsolute('bar/baz')//falsepath.isAbsolute('.')//false
path.join([...paths]) ---> 返回值:String
path.join()方法将path片段按照操作系统系统特定的分隔符连接在一起,然后将路径结果规范化。
0 长度 path的片段将被忽略,如果连接的路径是 0 长度的字符串,将返回一个“.”来代表当前的工作目录
如果任意一个 path片段不是字符串,将会抛出TypeError
错误
例如:
path.join('/foo','bar','baz/asdf','quux','..')//Returns:'/foo/bar/baz/asdf'path.join('foo',{},'bar')//throwsTypeError:Argumentstopath.joinmustbestrings
path.normalize(path) ---> 返回值:String
path.normalize()方法用于把 path规范化,解析出 '..'和 '.'片段
当发现多个连续地单独路径字符片段(例如:Unix 系统中的 /和 Windows 系统中的 \),它们将被各自操作系统的 单个 分隔符替代
参数:
path:String
如果 path 是一个 0 长度的字符串,将返回一个“.”来代表当前的工作目录;如果path不是一个字符串,将会抛出TypeError
错误
例如:Unix 系统
path.normalize('/foo/bar//baz/asdf/quux/..')//Returns:'/foo/bar/baz/asdf'
Windows 系统
path.normalize('C:\\temp\\\\foo\\bar\\..\\');//Returns:'C:\\temp\\foo\\'
path.parse(path) ---> 返回值:Object
path.parse() 方法返回路径字符串的对象
返回的对象将包含以下属性:
dir:String
root:String
base:String
name:String
ext:String
参数:
path:String
如果path不是字符串,将会抛出TypeError
错误
例如:Windows 系统
path.parse('C:\\path\\dir\\file.txt')//Returns://{//root:"C:\\",//dir:"C:\\path\\dir",//base:"file.txt",//ext:".txt",//name:"file"//}
path.relative(from, to) ---> 返回值:String
path.relative()方法返回从 from到 to之间的相对路径,如果二者是相同的路径,则返回一个 0 长度的字符串
from当前路径,并且方法返回值是基于 from 指定到 to 的相对路径
to到哪个路径
from和to任意一个不是字符串的话,将会抛出TypeError
错误
例如:Windows 系统
path.relative('C:\\orandea\\test\\aaa','C:\\orandea\\impl\\bbb')//Returns:'..\\..\\impl\\bbb'
path.resolve([...paths]) ---> 返回值:String
path.resolve()方法将一个路径序列或路径片段解析成 绝对路径
提供的路径片段从右往左处理,后面的路径会优先处理直到构造出一个绝对路径。例如,给出一个路径片段 /foo
,/bar
,baz
,调用 path.resolve('/foo', '/bar', 'baz') 会返回/bar/baz
如果处理所有的路径片段都不能生成一个绝对路径,那么,表示当前的工作目录已经被使用了
路径的结果都是规范化的而且没有斜杠,除非路径被解析成根目录
0 长度的 path片段将被忽略,如果没有 path片段通过,path.resolve() 将返回当前工作目录的绝对路径
如果任意一个参数不是字符串的话,将会抛出TypeError
错误
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/p_w_picpath.gif')//ifthecurrentworkingdirectoryis/home/myself/node,//thisreturns'/home/myself/node/wwwroot/static_files/gif/p_w_picpath.gif'
path.delimiter ---> 类型:String
path.delimiter提供特定平台的路径分隔符
;
---> Windows 系统
:
---> Unix 系统
例如:Unix 系统中
console.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']
Windows 系统中
console.log(process.env.PATH)//Prints:'C:\Windows\system32;C:\Windows;C:\ProgramFiles\node\'process.env.PATH.split(path.delimiter)//Returns:['C:\\Windows\\system32','C:\\Windows','C:\\ProgramFiles\\node\\']
path.sep---> 类型:String
返回操作系统中文件分隔符; window ---> \\, Unix ---> /
例如:Unix 系统
'foo/bar/baz'.split(path.sep)//Returns:['foo','bar','baz']
Windows 系统
'foo\\bar\\baz'.split(path.sep)//Returns:['foo','bar','baz']
新建一个JS 文件:
varpath=require("path");//格式化路径console.log('normalization:'+path.normalize('/test/test1//2slashes/1slash/tab/..'));//连接路径console.log('jointpath:'+path.join('/test','test1','2slashes/1slash','tab','..'));//转换为绝对路径console.log('resolve:'+path.resolve('main.js'));//路径中文件的后缀名console.log('extname:'+path.extname('main.js'));
在命令行工具中运行,查看输出结果:
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。