为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
富国沪深 2021-04-25 08:14:50
我如何编写demo.go打印安装路径的程序demo.exe?D:\>go build demo.godemo.exe在中D:\。运动后demo.exe到C:\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
查看完整描述

2 回答

?
qq_花开花谢_0

TA贡献1835条经验 获得超7个赞

package main


import (

    "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。


查看完整回答
反对 回复 2021-05-10
?
当年话下

TA贡献1890条经验 获得超9个赞

一个人可以尝试从例如:


package main


import "os"


func main() {

        println(os.Args[0])

}

$ go run main.go

/tmp/go-build135649844/command-line-arguments/_obj/a.out

$

(仅在Linux上进行了测试,但如果可能的话,os包应跨平台使用)


查看完整回答
反对 回复 2021-05-10
  • 2 回答
  • 0 关注
  • 428 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信