node.js养成计划(八)path、__dirname、

一、path

格式化路径 path.normalize§

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

path.normalize('/foo/bar//baz/asdf/quux/..');  
// returns   
'/foo/bar/baz/asdf'  
路径联合 path.join([path1], [path2], […])

特点:将所有名称用path.seq串联起来,然后用normailze格式化

path.join('///foo', 'bar', '//baz/asdf', 'quux', '..');  
// returns   
'/foo/bar/baz/asdf'  
路径寻航 path.resolve([from …], to)

特点:相当于不断的调用系统的cd命令

示例:

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

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

相对路径 path.relative(from, to)

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

示例:

path.relative('C:\\orandea\\test\\aaa', 'C:\\orandea\\impl\\bbb')  
// returns  
'..\\..\\impl\\bbb'  
  
path.relative('/data/orandea/test/aaa', '/data/orandea/impl/bbb')  
// returns  
'../../impl/bbb'  
文件夹名称 path.dirname§

特点:返回路径的所在的文件夹名称

示例:

path.dirname('/foo/bar/baz/asdf/quux')  
// returns  
'/foo/bar/baz/asdf'  
文件名称 path.basename(p, [ext])

特点:返回指定的文件名,返回结果可排除[ext]后缀字符串

示例:

path.basename('/foo/bar/baz/asdf/quux.html')  
// returns  
'quux.html'  
  
path.basename('/foo/bar/baz/asdf/quux.html', '.html')  
// returns  
'quux'  
扩展名称 path.extname§

特点:返回指定文件名的扩展名称

示例:

path.extname('index.html')  
// returns  
'.html'  
  
path.extname('index.')  
// returns  
'.'  
  
path.extname('index')  
// returns  
''  
路径分隔符 path.sep

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

示例:
linux:

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

window:

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

二、__dirname和__filename

在每个模块中、除了require、exports 等模块相关API 之外,还有两个特殊成员

  • __dirname 获取当前文件所属目录的绝对路径
  • __filename 获取当前文件的绝对路径
  • __dirname 和 __ filename是不受node命令所属路径影响的
  • 这两个命令是node的命令
console.log(__dirname)
console.log(__filename)

return

D:\project\node\nodejs_study\06\code
D:\project\node\nodejs_study\06\code\filename.js

在node中文件所属路径被设计为相对于执行node命令所处的路径;所以引入__dirname和__filename来帮助我们解决这个问题,同时我们可以配合path.join()来辅助拼接路径生成动态的绝对路径。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值