electron的开发过程中,经常会碰到路径处理的问题。那么不可避免的就会用到path.join()path.resolve()等函数。这两个函数究竟有什么样的差别呢?这就是本文中,所探讨的问题。

苏南大叔:对比理解 electron 中的 path.jon 和 path.resolve - electron-path-join-resolve
对比理解 electron 中的 path.jon 和 path.resolve(图1-1)

当然,在实际应用中,这两个函数,经常搭配的__dirname__statcic已经在上一篇文章中,苏南大叔进行过了讲述,具体链接见文末。本文的测试环境是:win10下的electron-vue

path.join

path.join根据参数的变化而变化,参数是绝对地址,返回的就是绝对地址,参数是相对地址,返回的也是相对地址。举个例子来说的话,比如:在electron-vue项目中,下面的这条语句。

console.log(path.join(__dirname,"./test"))

调试模式下,因为__dirname是相对地址,所以,path.join()的结果也是相对地址。
生产模式下,因为__dirname是绝对地址,所以,path.join()的结果也是绝对地址。

path.resolve

path.resolve恒定返回绝对地址。比如:在electron-vue项目中,下面的这条语句:

console.log(path.resolve(__dirname,"./test"))

无论是在调试模式还是生产模式下,path.resolve()的结果恒定为绝对地址。

相关链接

总结

php的类似函数realpath()函数相比较的话,node里面的path.resolve()的效果,是更为接近的。

  • phprealpath()会检测最终路径是否真实存在,不存在的话,是会返回false的。
  • path.resolve()是并不会检测对应路径是不是真实存在的,只是简单的返回个绝对路径。路径是否有效,并不在考虑范围内。

更多electron相关经验文章,请支持苏南大叔的相关文章:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留链接作者。
本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
未经许可,规模化镜像抄袭本站内容的行为,将会根据有关法律法规进行维权。
程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。

 【加群】加入QQ群【175454274】和大家一起讨论这个问题

 【源码】本文代码片段及相关软件,请点此获取

 【绝密】秘籍文章入口,仅传授于有缘之人   electron

本站的忠实读者小伙伴,正在阅读下面这些文章: