是否有可能通过 Golang 获取可执行文件图标?

Is it possible to get executable file icon by Golang?

我正在尝试编写一个“下载页面网站”,并试图在我的网页上显示文件图标。

和Windows系统一样,“.exe”文件里面有图标图像。或者 linux 可执行文件。我可以读吗?

我知道python可以用包名"win32api"实现,请问有没有golang的包可以实现这个功能?

您可以利用 linux 包。

例如可以使用icoextract,可以通过apt安装:

apt install icoextract

然后 运行 像这样:

icoextract /path/to/file.exe /path/to/file.ico

Go 可以调用命令并使用包 os/exec 执行它们。所以你可以做类似

的事情
func ExtractIcon(executablePath string) []byte {
    file, err := ioutil.TempFile("dir", "prefix")
    if err != nil {
        log.Fatal(err)
    }
    defer os.Remove(file.Name())
    cmd := exec.Command("icoextract", executablePath, file.Name())
    if err = cmd.Run(); err != nil {
        log.Fatal(err)
    }

    content, _ := ioutil.ReadFile(file.Name())
    return content
}