0

我可以获得当前目录和当前文件的名称,但是如果我从文件中.go构建一个,那么我仍然会得到名称。.exego build.go

.../Project/Test/testfile.go

构建testfile.gogo 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())
}
4

1 回答 1

3

os 包提供了获取可执行文件的os.Args[0]名称,或者如果你想要整个路径,你可以使用os.Executable,正如@Peter所建议的那样

于 2020-02-14T08:24:28.523 回答