How can I open files relative to my GOPATH?

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.

Leave a Comment