创建可执行文件后获取当前文件名

我可以获得当前目录和当前文件的名称,但是如果我从文件中.go构建一个,那么我仍然会得到名称。.exego 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())

}


30秒到达战场
浏览 116回答 1
1回答

梵蒂冈之花

os 包提供了获取可执行文件的os.Args[0]名称,或者如果你想要整个路径,你可以使用os.Executable,正如@Peter所建议的那样
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go