如何获取主文件的目录

假设它main.go位于/a/b/c/。


我想知道的是所在的目录main.go,也就是/a/b/c我执行文件的时候。


我搜索了互联网并尝试了许多解决方案,但没有人给我正确的路径。


路径应该与 pwd 无关。


以下 4 个示例应给出相同的路径,/a/b/c. 我怎样才能实现它?


/a/b/c$ go run main.go

/a/b$ go run c/main.go

/a$ go run b/c/main.go

~$ go run a/b/c/main.go


www说
浏览 130回答 1
1回答

森栏

尝试这个:package mainimport (    "fmt"    "path"    "runtime")func getDirectory() string {    _, file, _, ok := runtime.Caller(1)    if ok {        return path.Dir(file)    }    return ""}func main() {    address := getDirectory()    fmt.Println(address)}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go