获取当前源码文件路径
概念说明
runtime.Caller 可以获取调用栈中的文件名、行号等信息。
它常用于调试、日志定位或根据源码位置推导相邻资源路径。
需要注意:
源码文件路径不等于程序运行目录。运行目录通常用 os.Getwd() 获取。
语法/规则
runtime.Caller(0)表示当前调用位置。- 返回值包含程序计数器、文件路径、行号和是否成功。
- 文件路径可能是绝对路径,也可能受编译方式影响。
- 如果只想取文件名,可以配合
filepath.Base。 - 如果想取当前工作目录,应使用
os.Getwd()。
获取源码文件名示例
| |
输出结果:
| |
常见错误
- 把
runtime.Caller返回的源码路径当成当前运行目录使用。 - 忘记检查
ok,在获取失败时继续使用空路径。 - 在不同构建环境中依赖完整源码路径,导致路径不稳定。