二进制和其他文件

时间:2016-12-28 02:46:49

标签: go directory package

我正在尝试打包我的go应用程序二进制文件,该文件可以通过在localhost:8080上运行的Web界面访问,这样在下载时它能够在运行该文件的文件夹中找到JS(前端)文件。我似乎无法使其发挥作用。

我一直在做这样的事情:

  pwd, err := os.Getwd()
  if err != nil {
      fmt.Println(err)
      os.Exit(1)
  }

然后尝试使用二进制文件的工作目录来访问其中的文件,但这似乎不起作用。

二进制文件位于:

/用户/管理员/桌面/ testappfolder

但是当我用以下方式运行程序时:

pwd, err := os.Getwd()
if err != nil {
    fmt.Println(err)
    os.Exit(1)
}
fmt.Println(pwd)

我最终将/Users/admin作为工作目录。

我想知道:

我哪里出错了? 这与Gopath有关吗? 我是否正确地将应用程序分发为“zip”并在我的程序中直接设置相对于工作目录的文件路径?或者这是错误的逻辑?

1 个答案:

答案 0 :(得分:1)

os.Getwd将与启动二进制文件的位置相对应,而不是二进制文件所在的位置。

为了建立更强大的解决方案,我会使用flag或使用配置值传递files目录的位置。