返回顶部
首页 > 资讯 > 后端开发 > GO >在运行时获取项目根路径以读取配置文件
  • 456
分享到

在运行时获取项目根路径以读取配置文件

2024-04-04 23:04:46 456人浏览 泡泡鱼
摘要

对于一个golang开发者来说,牢固扎实的基础是十分重要的,编程网就来带大家一点点的掌握基础知识点。今天本篇文章带大家了解《在运行时获取项目根路径以读取配置文件》,主要介绍了,希望对大家的知识积累有

对于一个golang开发者来说,牢固扎实的基础是十分重要的,编程网就来带大家一点点的掌握基础知识点。今天本篇文章带大家了解《在运行时获取项目根路径以读取配置文件》,主要介绍了,希望对大家的知识积累有所帮助,快点收藏起来吧,否则需要时就找不到了!

问题内容

我有一个具有以下结构的 Go 项目,我正在努力读取位于我的项目中的配置文件,我需要读取 config yaml (位于根项目内),我应该在 other 中读取它包子根目录下,我得到了错误未找到

myproject
- config.yaml
- cmd
 --com
  ---ftp
   ----fs.go

fs.go 内部,我需要阅读 config.yaml 并且没有成功。我尝试使用 os.getwdex, err := os.executable() 以及 "../../../" 没有成功,知道吗?

@vonc - 建议使用 https://GitHub.com/gobuffalo/packr 这可以帮助我猜测,但问题是我需要在 fs.go 文件内调用它,并且我需要将其作为参数传递<从 main.go 文件中,有更好的方法吗?因为我需要在很多函数中传递这个参数......

viper 可以帮忙吗? Https://github.com/spf13/viper

我的程序是 cli 程序,它将用作 bin


解决方案


2018:如果二进制文件是在 gopath/bin 中构建的,而您的源代码位于 gopath/src 中,则相对路径将为(在运行时)../src/myproject

但更简洁的方法是将该文件嵌入到您的二进制文件中。
例如,参见 gobuffalo/packr

2021 年第一季度更新:使用 go 1.16,您将使用 embed package

//go:embed hello.txt
var f embed.FS
data, _ := f.ReadFile("hello.txt")
print(string(data))

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注编程网公众号,一起学习编程~

您可能感兴趣的文档:

--结束END--

本文标题: 在运行时获取项目根路径以读取配置文件

本文链接: https://www.lsjlt.com/news/596012.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作