本文共 556 字,大约阅读时间需要 1 分钟。
首先,要理解一点,Go 不是解释型语言,它的路径不是 .go 文件的路径,而是编译出来的可执行文件的路径。
package mainimport ( "fmt" "os")func main() { ePath, err := os.Executable() if err != nil { panic(err) } // 全路径 fmt.Println(ePath) // 所在目录 fmt.Println("file directory", path.Dir(ePath))}
通过 go build 编译成可执行二进制文件,执行文件看看,这个时候获取到的路径就是可执行文件的路径了。
D:\dev\php\magook\trunk\server\votePlatfom\main.exefile directory .
如果是 go run main.go
C:\Users\ADMINI~1.DES\AppData\Local\Temp\go-build913480822\b001\exe\main.exefile directory .
.
代表当前目录
所以,当 A.go 文件中需要访问 B 文件的时候,直接以编译后的可执行文件出发去找文件 B 即可,而不用关心A.go的位置。
转载地址:http://icaui.baihongyu.com/