在运行编译的golang程序时如何使用配置文件

时间:2018-09-20 09:46:06

标签: go

我使用go build main.go构建了一个go文件。但是该程序使用的是ini文件,运行./main时如何使用该文件,导致出现此错误:

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)

使用此文件的代码是:

func GetConfigFile() (*ini.File, error) {
    f, err := ini.Load("config/config.ini")
    if err != nil {
        log.Println(err)
    }
    return f, err
}

2 个答案:

答案 0 :(得分:0)

使用这样的绝对路径:

func GetConfigFile() (*ini.File, error) {
    f, err := ini.Load("/var/config/config.ini")
    if err != nil {
        log.Println(err)
    }
    return f, err
}

答案 1 :(得分:0)

这取决于您从何处运行程序。阅读当前工作目录的概念,如果您从控制台运行程序,则该路径通常显示在该行的开头。您在代码中使用了相对路径"config/config.ini",这意味着如果您当前在目录/home/user中,则文件应该位于/home/user/config/config.ini

您可能要从其他目录运行代码,或者在代码中使用绝对路径,例如/home/user/go/src/myapp/config/config.ini