我能够获得当前目录的完整路径,现在我想创建一个函数来读取或获取代码执行的文件名。我能够获取文件名,但它返回的是代码编写时的原始文件名:
func GetFileName() string {
_, fpath, _, ok := runtime.Caller(0)
if !ok {
err := errors.New("failed to get filename")
panic(err)
}
filename := filepath.Base(fpath)
// remove extension
filename = removeExtension(filename)
return filename + ".log"
}
我希望做的是获取代码执行时的当前文件名,比如:
我创建了app.go
:
package my
function getCurrentFileName() string {
// some code here that will return the filename where this code is executed.
}
当我在不同的位置,例如hello.go
文件中调用getCurrentFileName()
时,它将返回hello.go
。
我已经卡在这里一段时间了,正在寻找答案。