关于读取配置文件路径的问题
来源:17-8 重构与运行

骑着毛驴去东莞3506861
2020-11-25
go run main.go
我采用的是 os.Getwd()
获取工作目录,go build后,在项目根目录执行读取文件是正确的,但是如果在非项目目录执行可执行文件,就读不到文件了,换成file, _ := exec.LookPath(os.Args[0]);filepath.Abs(file)
的方式,go run 就读不到文件了,请问老师,有什么两种方式都兼容的解决方案
写回答
1回答
-
不建议在代码内部处理工作目录与可执行文件所在目录相关的逻辑。建议路径一律由go run main.go时,通过flag给出。https://www.cnblogs.com/aaronthon/p/10883711.html
要读取配置文件,只要一个配置文件路径参数即可。go run main.go --config_file_path=...
我们什么都不要做,这个路径就可以是相对路径,也可以是绝对路径,具体由启动程序的人进行控制。
我们将来要把服务部署到云端,这个路径很有可能会和可执行文件,或者源码所在路径毫无关系,所以外面通过参数给出是最合适的。
012020-12-03
相似问题