golang中go build 后读取配置文件

golang打包后读取配置文件

在用go写代码的时候,为了好用经常使用go build 打包,如果我们用到了配置文件,就总是导致不能找到文件所在位置了出现bug,所以以下代码就解决了这个问题。

核心代码:

go 复制代码
	file, err := exec.LookPath(os.Args[0])
	if err != nil {
		fmt.Println("无法获取可执行文件路径:", err)
	}
	path, err := filepath.Abs(file)
	if err != nil {
		fmt.Println("无法获取文件绝对路径:", err)
	}
	index := strings.LastIndex(path, string(os.PathSeparator))
	if index == -1 {
		fmt.Println("路径分隔符未找到")
	}
	path = path[:index]
	configFileName = filepath.Join(path, "config-pro.yaml")

案例:

Successful!

相关推荐
云技纵横13 小时前
@Transactional 里套 REQUIRES_NEW,为什么会把连接池耗尽?
后端·面试
tcdos13 小时前
不止扫码 — 微信生态深度融合(登录 + 支付 + 消息)
后端·微信小程序
程序员cxuan13 小时前
Anthropic 大面积封号,连大 V 都忍不了开喷了。
人工智能·后端·程序员
MacroZheng14 小时前
短短几天,暴涨2.8万Star!又一款编程神器开源!
java·人工智能·后端
PinkSun14 小时前
平台线程池用了3年很顺手,换成虚拟线程后我后悔了
后端
达达尼昂14 小时前
Claude : 如何设计可控的agent-loops
前端·人工智能·后端
lambdax14 小时前
Celery 心跳任务内存膨胀排查与修复全记录
后端
SamDeepThinking14 小时前
函数式编程:用BiFunction消除多类型分支的代码重复
java·后端·面试
IT_陈寒14 小时前
Redis持久化丢失数据的坑,这次终于被我填平了
前端·人工智能·后端
葫芦和十三15 小时前
图解 MongoDB 24|分片为什么存在:垂直扩容的天花板
后端·mongodb·agent