2

我正在尝试为 go 编程语言编写 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。有人可以指导我吗?

4

1 回答 1

1

filepath.Walk 的文档中,您可以阅读:

func Walk(根字符串,walkFn WalkFunc)错误

Walk 遍历以根为根的文件树,为树中的每个文件或目录调用 walkFn,包括根。访问文件和目录时出现的所有错误都由 walkFn 过滤。文件按词法顺序遍历,这使得输出具有确定性,但意味着对于非常大的目录,Walk 可能效率低下。

所以Walk期望一个目录作为第一个参数。你在里面放了一个文件,这让整个事情变得恐慌。

我不确定您要尝试做什么,但是如果您想打开该文件,请使用os.Open或者os.Stat如果您想测试是否存在。

在 go 中编码时的一般提示:使用该gofmt命令根据样式指南格式化您的代码。

于 2012-10-05T01:45:18.623 回答