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、最初のパラメーターとしてディレクトリが必要です。そこにファイルを入れているので、全体がパニックになります。

何をしようとしているのかわかりませんが、そのファイルを開きたい場合は、os.Openorを使用os.Statして存在をテストしてください。

go でコーディングする際の一般的なヒント: コマンドを使用して、スタイル ガイドラインgofmtに従ってコードをフォーマットします。

于 2012-10-05T01:45:18.623 に答える