Я могу получить текущий каталог и имя текущего .go
файла, но если я соберу .exe
из файла с go build
, тогда я все равно получу имя .go
.
... / Project / Test / testfile. go
После сборки testfile.go
с go build
у меня есть такие:
1) ... / Project / Test / testfile. go
2) ... / Project / Test / main.exe
Когда я выполняю main.exe, я получаю testfile
Но я хочу получить имя main
после выполнение main.exe
package main
import (
"errors"
"fmt"
"path/filepath"
"runtime"
"strings"
)
func GetFileName() string {
_, fpath, _, ok := runtime.Caller(0)
if !ok {
err := errors.New("failed to get filename")
panic(err)
}
filename := filepath.Base(fpath)
filename = strings.Replace(filename, ".go", "", 1)
return filename
}
func main() {
fmt.Print(GetFileName())
}