How can I open files relative to my GOPATH?

前端 未结 4 791
忘掉有多难
忘掉有多难 2020-12-05 09:36

I\'m using io/ioutil to read a small text file:

fileBytes, err := ioutil.ReadFile(\"/absolute/path/to/file.txt\")

And that wor

4条回答
  •  旧时难觅i
    2020-12-05 09:47

    Hmm... the path/filepath package has Abs() which does what I need (so far) though it's a bit inconvenient:

    absPath, _ := filepath.Abs("../mypackage/data/file.txt")
    

    Then I use absPath to load the file and it works fine.

    Note that, in my case, the data files are in a package separate from the main package from which I'm running the program. If it was all in the same package, I'd remove the leading ../mypackage/. Since this path is obviously relative, different programs will have different structures and need this adjusted accordingly.

    If there's a better way to use external resources with a Go program and keep it portable, feel free to contribute another answer.

提交回复
热议问题