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.