我正在使用
io/ioutil
读取一个小文本文件:fileBytes, err := ioutil.ReadFile("/absolute/path/to/file.txt")
这很好用,但并不是非常便携。在我的情况下,我想要打开的文件都在我的GOPATH中,例如:
/Users/matt/Dev/go/src/github.com/mholt/mypackage/data/file.txt
由于 data
文件夹与源代码处于同一级目录,所以我希望只需指定相对路径:
data/file.txt
但是我得到了这个错误:
panic:打开数据/文件.txt:没有那个文件或目录
如何使用相对路径打开文件,特别是如果它们与我的Go代码并存?
(请注意,我的问题特别涉及相对于GOPATH打开文件。在Go中使用任何相对路径打开文件都很容易,只需给出相对路径即可代替绝对路径;文件相对于编译二进制文件的工作目录打开。在我的情况下,我想相对于编译二进制文件的位置打开文件。事后看来,这是一个不好的设计决策。)