包括go run时候的临时文件绝对路径

或者正常编译后执行的绝对路径

//获取程序执行目录
func GetRunPath() (string, error) {
    path, err := filepath.Abs(filepath.Dir(os.Args[0]))
    return path, err
}

//获取程序执行目录
func GetRunPath2() string {
    file, _ := exec.LookPath(os.Args[0])
    path, _ := filepath.Abs(file)
    index := strings.LastIndex(path, string(os.PathSeparator))
    ret := path[:index]
    return ret
}

返回的结果是这样的