我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

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 is not defined的错误提示。

const path = require("path")

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相关经验文章,请支持苏南大叔的相关文章:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

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

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