相关疑难解决方法(0)

如何在Go中使用相对路径打开文件?

我正在io/ioutil阅读一个小文本文件:

fileBytes, err := ioutil.ReadFile("/absolute/path/to/file.txt")
Run Code Online (Sandbox Code Playgroud)

这样做很好,但这不是完全可移植的.在我的例子中,我要打开的文件在我的GOPATH中,例如:

/Users/matt/Dev/go/src/github.com/mholt/mypackage/data/file.txt
Run Code Online (Sandbox Code Playgroud)

由于data文件夹与源代码一起使用,我只想指定相对路径:

data/file.txt
Run Code Online (Sandbox Code Playgroud)

但后来我得到了这个错误:

恐慌:打开data/file.txt:没有这样的文件或目录

如何使用相对路径打开文件,特别是如果它们与我的Go代码一起使用?

go filepath

64
推荐指数
4
解决办法
5万
查看次数

如何从代码和测试中引用相关文件

我需要引用patients.jsonpatients.go,这里的文件夹结构:

在此输入图像描述

如果我做:

filepath.Abs("../../conf/patients.json")

它适用go test ./...但却失败了revel run

如果我做:

filepath.Abs("conf/patients.json")

恰恰相反(狂欢很好,但测试失败).

有没有办法正确引用该文件,以便它适用于测试和正常程序运行?

relative-path go revel

11
推荐指数
1
解决办法
3048
查看次数

标签 统计

go ×2

filepath ×1

relative-path ×1

revel ×1