如何在Go中找到正在运行的程序的安装目录?

我如何编写demo.go打印安装路径的程序demo.exe

D:\>go build demo.go

demo.exe在中D:\。运动后demo.exeC:\Windows,然后根据D:\路径(这是不是在C:\Windows)运行demo.exe应打印C:\Windows

下图显示了在这种情况下不起作用的原因(因为demo.exe始终获得其当前的执行路径,而不是其实际路径)。这只是告诉您当前的执行目录,而不是包含文件https://github.com/axgle/go/blob/master/may_app_path_bug.jpg的目录

更新:window / linux解决方案在这里 https://github.com/axgle/app


富国沪深
浏览 430回答 2
2回答

qq_花开花谢_0

package mainimport (    "fmt"    "path/filepath"    "os")func main() {    path, err := filepath.Abs(os.Args[0])    if err != nil { panic(err) }    fmt.Println(path)}通过阅读os.Args和了解更多信息filepath.Abs。

当年话下

一个人可以尝试从例如:package mainimport "os"func main() {        println(os.Args[0])}$ go run main.go/tmp/go-build135649844/command-line-arguments/_obj/a.out$(仅在Linux上进行了测试,但如果可能的话,os包应跨平台使用)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go