1 回答
TA贡献1829条经验 获得超6个赞
有用的提示:
使用os.Getwd()和filepath.Join()查找相对文件路径的绝对路径。
例子
// File: showPath.go
package main
import (
"fmt"
"path/filepath"
"os"
)
func main(){
cwd, _ := os.Getwd()
fmt.Println( filepath.Join( cwd, "./template/index.gtpl" ) )
}
首先,我建议该template文件夹仅包含演示模板,而不包含 go 文件。
接下来,为了让生活更轻松,只运行项目根目录中的文件。这将有助于使文件路径在嵌套在子目录中的 go 文件中保持一致。相对文件路径从当前工作目录开始,这是调用程序的位置。
显示当前工作目录更改的示例
user@user:~/go/src/test$ go run showPath.go
/home/user/go/src/test/template/index.gtpl
user@user:~/go/src/test$ cd newFolder/
user@user:~/go/src/test/newFolder$ go run ../showPath.go
/home/user/go/src/test/newFolder/template/index.gtpl
至于测试文件,您可以通过提供文件名来运行单个测试文件。
go test foo/foo_test.go
最后,使用基本路径和path/filepath包来形成文件路径。
例子:
var (
basePath = "./public"
templatePath = filepath.Join(basePath, "template")
indexFile = filepath.Join(templatePath, "index.gtpl")
)
- 1 回答
- 0 关注
- 351 浏览
添加回答
举报