go中如何确定当前运行的可执行文件的完整路径?

我一直在 osx 上使用这个函数:


// Shortcut to get the path to the current executable                      

func ExecPath() string {                                                   

  var here = os.Args[0]                                                    

  if !strings.HasPrefix(here, "/") {                                       

    here, _ = exec.LookPath(os.Args[0])                                    

    if !strings.HasPrefix(here, "/") {                                     

      var wd, _ = os.Getwd()                                               

      here = path.Join(wd, here)                                           

    }                                                                      

  } 

  return here                                                              

}

...但它非常混乱,它根本无法在 Windows 上运行,当然也不能在 Windows 上的 git-bash 中运行。


有没有办法做这个跨平台?


注意。特别是 args[0] 取决于二进制文件的调用方式;在某些情况下,它只是二进制文件本身,例如。“应用程序”或“app.exe”;所以你不能只使用它。


蝴蝶不菲
浏览 222回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go