我如何编写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。
当年话下
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包应跨平台使用)
- 2 回答
- 0 关注
- 428 浏览
添加回答
举报
0/150
提交
取消