问题是这样的:
项目执行go install后,目录 /A/B中有main.exe和config.yml
读配置文件我用的相对路径ReadFile("./config.yml")
我在/A/B目录中执行main.exe是没有问题的
我在/A目录中执行B/main.exe就会出现“打开./config.yml错误”
如何解决?
问题是这样的:
项目执行go install后,目录 /A/B中有main.exe和config.yml
读配置文件我用的相对路径ReadFile("./config.yml")
我在/A/B目录中执行main.exe是没有问题的
我在/A目录中执行B/main.exe就会出现“打开./config.yml错误”
如何解决?
配置文件路径应该作为命令行参数可配置
如果是基于程序文件的相对目录, 参考做法:
execpath, err := os.Executable() // 获得程序路径
// handle err ...
configfile := filepath.Join(filepath.Dir(execpath), "./config.yml")
7 回答5.3k 阅读
6 回答6.8k 阅读✓ 已解决
4 回答2.3k 阅读
1 回答3.4k 阅读
2 回答885 阅读✓ 已解决
2 回答2.2k 阅读
1 回答2.1k 阅读
go里有相对路径好像是执行命令时的目录,不是相对可执行文件的
解决方法就是写一个获取当前 可执行文件位置的方法,
PS:
更新:
楼中楼回复的链接调用的方法是:
你换这方法试试?