登录
首页 >  Golang >  Go问答

获取当前可执行文件的文件名

来源:stackoverflow

时间:2024-03-07 20:18:27 135浏览 收藏

对于一个Golang开发者来说,牢固扎实的基础是十分重要的,golang学习网就来带大家一点点的掌握基础知识点。今天本篇文章带大家了解《获取当前可执行文件的文件名》,主要介绍了,希望对大家的知识积累有所帮助,快点收藏起来吧,否则需要时就找不到了!

问题内容

我可以获取当前目录和当前 .go 文件的名称,但如果我使用 go build 从文件构建 .exe 那么我仍然可以获得 .go 名称。

.../project/test/testfile.go

使用 go build 构建 testfile.go 后,我有这些:

1) .../project/test/testfile.go

2) .../project/test/main.exe

当我执行 main.exe 时,我得到 testfile 但我想在执行 main.exe 后获取 main 名称

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())
}

解决方案


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

好了,本文到此结束,带大家了解了《获取当前可执行文件的文件名》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>