I build a go file using go build main.go
. But this program is using a ini file, how do I use this file cause when I run ./main
, I am getting this error:
2018/09/20 17:37:38 open config/config.ini: no such file or directory
2018/09/20 17:37:38 open config/config.ini: no such file or directory
panic: open config/config.ini: no such file or directory
goroutine 1 [running]:
log.Panic(0xc0000f7e98, 0x1, 0x1)
The code for using this file are:
func GetConfigFile() (*ini.File, error) {
f, err := ini.Load("config/config.ini")
if err != nil {
log.Println(err)
}
return f, err
}
It depends on where you run your program from. Read up on the concept of the current working directory, if you run your program from a console, the path is usually displayed at the start of the line. You use the relative path "config/config.ini"
in your code which means that if you are currently in the directory /home/user
then the file is expected to be at /home/user/config/config.ini
.
You may want to either run your code from a different directory or use an absolute path in your code, e.g. /home/user/go/src/myapp/config/config.ini
Use absolute path like this :
func GetConfigFile() (*ini.File, error) {
f, err := ini.Load("/var/config/config.ini")
if err != nil {
log.Println(err)
}
return f, err
}