我正在尝试使用编程语言对wiki进行编码。
我已将/data
文件夹和.html
文件中的数据放在/tmpl
文件夹中。
我编写了main
函数,如下所示
func main() {
walk := func(path string, info os.FileInfo, err error) error {
if err == nil && !info.IsDir() && filepath.Ext(path) == ".html" {
http.HandleFunc("/view/", makeHandler(viewHandler))
http.HandleFunc("/edit/", makeHandler(editHandler))
http.HandleFunc("/save/", makeHandler(saveHandler))
}
return err
}
root := TEMPLATE_PATH + "edit.html"
err := filepath.Walk(root, walk)
if err != nil {
return
}
}
我得到了panic edit.html not found
。有人可以指导我吗?
答案 0 :(得分:1)
从documentation of filepath.Walk您可以阅读:
func Walk(root string,walkFn WalkFunc)错误
步行浏览以root为根的文件树,为每个文件或目录调用walkFn 树,包括根。访问文件和目录时出现的所有错误都会被过滤掉 walkFn。这些文件以词法顺序走,这使得输出确定性但是 意味着对于非常大的目录,Walk可能效率低下。
所以Walk
期望一个目录作为第一个参数。你正在那里放一个文件
使整个事情陷入恐慌。
我不确定您要尝试做什么,但如果您要打开该文件,请使用os.Open
或os.Stat
,如果您要测试是否存在。
使用go进行编码时的一般提示:使用gofmt
命令根据style guidelines格式化代码。