方法一
Go 1.8 推荐的做法是利用 os.Executable 获取到可执行文件信息,然后使用 path/filepath.Dir 获取到目录:
package mainimport ( "fmt" "os" "path/filepath")func main() { ex, err := os.Executable() if err != nil { panic(err) } exPath := filepath.Dir(ex) fmt.Println(exPath)}
方法二
老版本可以使用 osext 来获取跨平台支持:
package mainimport ( "github.com/kardianos/osext" "fmt" "log")func main() { folderPath, err := osext.ExecutableFolder() if err != nil { log.Fatal(err) } fmt.Println(folderPath)}