获取路径
os.Getwd()
获取工作目录, 输出当前的工作目录('一般是项目的根路径') 语法:
wordDir, err := os.Getwd()例子:
在E:\Web\Golang\src\01\21\server目录运行
wordDir, err := os.Getwd()fmt.Println("wd", wordDir)// out: E:\Web\Golang\src\01\21\serveros.Args[0]
获取当前运行环境的可执行文件路径 这个列表里保存的是程序的启动参数,而参数0按照约定是程序的可执行文件名。 语法:
rt := os.Args[0]例子:
在E:\Web\Golang\src\01\21\server目录运行main.go文件, air默认把build打包后的可执行文件main.exe的
E:\Web\Golang\src\01\21/server/tmp目录下
fmt.Println("os", os.Args[0])runtime.Caller(0)
获取运行时的文件路径 拿到当前正在执行的代码的文件路径,推断出程序的根目录了
例子:
在E:\Web\Golang\src\01\21\server目录运行main.go文件
_, filename, _, _ := runtime.Caller(0)fmt.Println(filename)package utils
import ( "path" "runtime")
func GetPath(args ...any) string { var dir string if len(args) < 2 || args[1] == "" { dir = "/config/" } _, filename, _, _ := runtime.Caller(0) root := path.Dir(path.Dir(filename)) //获取当前工作目录 dirPath := path.Dir(root + dir) // 获取配置文件的目录 filePath := path.Join(dirPath, args[0].(string)) // 获取配置文件 return filePath}