2012-10-05 4 views
2

프로그래밍 언어로 위키 코드를 작성하려고합니다. /data 폴더에 데이터를 넣었으며 /tmpl 폴더에 .html 개의 파일을 넣었습니다. 내가 panic edit.html not found을 얻고있다왜 filepath.Walk() 패닉이 발생합니까?

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 
    } 
} 

을 다음과 같이

나는 main 기능을 코딩했다. 아무도 날 안내 해줄 수 없습니까? documentation of filepath.Walk에서

+0

TEMPLATE_PATH는 무엇이며 edit.html을 넣는 위치와 관련이 있습니까? 다른 사람의 암호를 따라 다니고 있습니까? – minikomi

+0

var TEMPLATE_PATH : = "tmpl /". – sreeprasad

+0

tmpl 폴더에 edit.html이 있습니까? – minikomi

답변

1

당신은 읽을 수

FUNC 거리 (루트 문자열, walkFn WalkFunc) 워크가 의 각 파일이나 디렉토리 walkFn를 호출 루트를 루트 파일 트리를 산책

오류 트리 (루트 포함). 파일 및 디렉토리 방문시 발생하는 모든 오류는 walkFn으로 필터링됩니다. 파일은 어순 순서로 걸 으면 출력이 결정적이되지만 은 매우 큰 디렉토리의 경우 Walk가 비효율적 일 수 있음을 의미합니다.

그래서 Walk은 첫 번째 매개 변수로 디렉토리를 필요로합니다. 당신은 거기에 파일을 넣고 있습니다. 어느 것이 전체가 공포를 던지게합니다.

내가 무엇을 시도하는지 잘 모르겠지만 파일을 열려면 존재 여부를 테스트하려면 os.Open 또는 os.Stat을 사용하십시오.

이동 중에 코딩 할 때의 일반적인 팁 gofmt 명령을 사용하여 style guidelines에 따라 코드의 서식을 지정하십시오.

관련 문제