Go找不到指定的文件

时间:2017-12-07 19:56:36

标签: go

我试图从配置文件中进行简单的读取设置。这两个文件 - config.json和Settings.go都在同一个文件夹中。但我总是得到"The system cannot find the file specified."我做错了什么?

func GetDbConnectionString() string {
    file, err := os.Open("config.json")
    if err != nil {
        log.Fatal(err)
    }
    decoder := json.NewDecoder(file)
    settings := Settings{}
    err1 := decoder.Decode(&settings)
    if err1 != nil {
        fmt.Println("error:", err1)
    }
    log.Print(&settings)
    return fmt.Sprintf("%s:%s@/%s", settings.login, settings.password, settings.database)
}

enter image description here

1 个答案:

答案 0 :(得分:3)

您的settings.jsonmain.go不在同一目录中。如果您调用go run main.gogo build . && ./app,则当前路径将为.../app/,其中不包含settings.json文件。

尝试将settings.json文件复制到与应用程序相同的目录,本地调用将起作用(如果从单独的目录运行,它仍将失败)。