go - 查找 Golang 应用程序的位置

标签 go

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

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

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

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

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

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

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

感谢您的帮助!

最佳答案

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

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

关于go - 查找 Golang 应用程序的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56434273/

相关文章:

http - 如何倒带 io.ReadCloser

sql - 我们可以将额外的参数传递给 beego 路由器吗

html - 在 golang HTML 模板中切换或 if/elseif/else

go - 在 docker 上更改文件时重建

go - 出于文档目的键入别名

go - 确定是否可以将任意类型的实例设置为任意类型的值

Golang Web Crawler解决方案,2个数据竞争,退出状态66

go - 评估/执行 Golang 代码/表达式,如 js 的 eval()

mongodb - 如何检查集合是否存在 MongoDB Golang

windows - 在 Go 中读取 XML 文件