如何打开位于不包含主文件的文件夹中的配置文件?

我想在我的项目中添加一个配置,我有这样一个项目结构:


app:

  -cmd

    - main

       -app.go

  -internal

    - config

        -config.go

  -pkg

  config.yaml

  go.mod

  go.sum

在配置文件中,我想读取 config.yaml:


func GetConfig() *Config {

    once.Do(func() {

        instance = &Config{}

        logger := logging.GetLogger("info")

        logger.Info("start config initialisation")

        if err := cleanenv.ReadConfig("config.yaml", instance); err != nil {

            help, _ := cleanenv.GetDescription(instance, nil)

            logger.Info(help)

            logger.Fatal(err)

        }


    })

    return instance

}

我得到一个错误:系统找不到指定的文件。要修复它,我需要将配置文件移动到启动应用程序的文件夹,即cmd/main 我想知道是否有可能以某种方式修复它,以便该文件与项目以及go.mod等等。我试图在读取文件的地方指定不同的路径,但没有任何效果。


我使用 cleanenv 库进行阅读


素胚勾勒不出你
浏览 75回答 1
1回答

一只名叫tom的猫

wd,err := os.Getwd()if err != nil {    // handle error}parentTop := filepath.Dir(wd) // if your working directory is top level you can skip this step// and wd instead然后使用父母和parentTop +"/pkg/config.yaml"
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go