我如何編寫demo.go打印安裝路徑的程序demo.exe?D:\>go build demo.godemo.exe在中D:\。運(yùn)動后demo.exe到C:\Windows,然后根據(jù)D:\路徑(這是不是在C:\Windows)運(yùn)行demo.exe應(yīng)打印C:\Windows。下圖顯示了在這種情況下不起作用的原因(因?yàn)閐emo.exe始終獲得其當(dāng)前的執(zhí)行路徑,而不是其實(shí)際路徑)。這只是告訴您當(dāng)前的執(zhí)行目錄,而不是包含文件https://github.com/axgle/go/blob/master/may_app_path_bug.jpg的目錄更新:window / linux解決方案在這里 https://github.com/axgle/app
2 回答

qq_花開花謝_0
TA貢獻(xiàn)1835條經(jīng)驗(yàn) 獲得超7個(gè)贊
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。

當(dāng)年話下
TA貢獻(xiàn)1890條經(jīng)驗(yàn) 獲得超9個(gè)贊
一個(gè)人可以嘗試從例如:
package main
import "os"
func main() {
println(os.Args[0])
}
$ go run main.go
/tmp/go-build135649844/command-line-arguments/_obj/a.out
$
(僅在Linux上進(jìn)行了測試,但如果可能的話,os包應(yīng)跨平臺使用)
- 2 回答
- 0 關(guān)注
- 457 瀏覽
添加回答
舉報(bào)
0/150
提交
取消