Golang获取执行文件目录
Golang 905 2021-07-26
2021-07-26 904 go
背景
在某些应用中会出现执行文件(main.go文件或者其编译后应用)与实际当前所在目录不一致的情况。
例如应用在A目录,现在打开的是B目录,在B目录中执行应用,此时因为应用的静态文件在A目录,应用因为是使用相对路径来调用静态文件,所以会出现报错,因为实际调用的静态文件路径是B目录的,B目录不存在此静态文件就会出现报错。
解决方法就是获取A目录绝对路径,再与相对路径拼接即可。
代码
package utils import ( "os" "path/filepath" ) // 执行文件所在位置 func BinPath() (string, error) { s, err := os.Executable() if err != nil { return "", err } dir := filepath.Dir(s) return dir, nil }