【问题标题】:Find location of Golang application查找 Golang 应用程序的位置
【发布时间】:2019-10-19 10:00:00
【问题描述】:

我有一个通过 Kubernetes 部署到容器中的 Golang 应用程序。在服务中,我想读取嵌套在应用程序中的文件。

我正在努力找出如何将当前工作目录设置为应用程序的位置。

目前,由于相对路径未对齐,应用程序出现错误:

open /workspace/source/package/file.csv: no such file or directory

我尝试使用以下代码并附加文件名:

var (
_, b, _, _ = runtime.Caller(0)
basepath   = filepath.Dir(b)
)

但是这仍然不起作用。有没有办法找到应用程序的当前位置,然后附加文件名?

感谢您的帮助!

【问题讨论】:

  • 只是不要在您的应用程序中硬编码路径。通过 CLI 参数、环境变量或配置文件获取路径以及其他配置。
  • 我没有硬编码路径。您能否提供 CLI 参数等的示例?谢谢

标签: go


【解决方案1】:

使用os.Executable 查找可执行文件的路径。

b, err := os.Executable()
if err != nil {
    log.Fatal(err)
}
basepath := filepath.Dir(b)

【讨论】:

    【解决方案2】:

    你不能在执行应用程序之前cd 吗?然后就可以使用相对路径了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多