Go语言获取程序各类资源的绝对路径的方法

路径问题

开发程序时,如果写死各类资源文件的路径,那么如果部署环境中的路径和开发环境不同,程序就无法正确工作。

为了解决这个问题,需要动态获取程序中各类资源的绝对路径。这样,不论程序被部署在什么地方,都可以正确读取各类资源文件。

各种编程语言,都有一些技巧可以获取程序各类资源的绝对路径的方法。本文要介绍的,是Go语言的相关技巧。

 

设计思路

我们可以通过在程序运行时,计算出程序的绝对路径,从而得到程序所在目录的绝对路径,进而获取程序各类资源的绝对路径。

我八年前写过一篇文章《Python怎样得到资源文件的绝对路径》,就是在Python中利用这个思路,实现了动态获得资源文件的绝对路径。

 

Go语言获取程序各类资源的绝对路径的方法

在Go语言的init()或者main() 函数中,调用下面这个Go语言函数,就能获取程序根目录的绝对路径。

 

func GetProjectAbsPath() (projectAbsPath string) {

programPath, _ := filepath.Abs(os.Args[0])

fmt.Println("programPath:", programPath)

projectAbsPath = path.Dir(path.Dir(programPath))

fmt.Println("PROJECT_ABS_PATH:", pr

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值