파일이나 디렉토리가 있는지 확인하는 방법? 좋은 방법을

./conf/app.iniGo 코드 에 파일이 있는지 확인하고 싶지만 좋은 방법을 찾을 수 없습니다.

Java에 File 메서드가 있다는 것을 알고 public boolean exists()있습니다. 파일 또는 디렉토리가 존재하면 true를 반환합니다.

그러나 어떻게 이것을 Go에서 할 수 있습니까?



답변

// exists returns whether the given file or directory exists
func exists(path string) (bool, error) {
    _, err := os.Stat(path)
    if err == nil { return true, nil }
    if os.IsNotExist(err) { return false, nil }
    return false, err
}

오류 처리를 추가하도록 편집되었습니다.


답변

이것을 사용할 수 있습니다 :

if _, err := os.Stat("./conf/app.ini"); err != nil {
    if os.IsNotExist(err) {
        // file does not exist
    } else {
        // other error
    }
}

참조 : http://golang.org/pkg/os/#IsNotExist


답변

FYI의 더 많은 것, 나는 내 질문이 빠른 검색이라고 생각하면서 몇 분 동안 둘러 보았으므로.

Go에서 경로가 기존 디렉토리를 나타내는 지 확인하는 방법은 무엇입니까?

이것은 내 검색 결과에서 가장 인기있는 답변이지만 여기 및 다른 곳에서는 솔루션이 존재 확인 만 제공합니다. path기존 디렉토리를 나타내는 지 확인하기 위해 쉽게 할 수 있음을 발견했습니다.

path := GetSomePath();
if stat, err := os.Stat(path); err == nil && stat.IsDir() {
    // path is a directory
}

내 문제의 일부는 path/filepath패키지에 isDir () 함수가 포함될 것으로 예상했다는 것 입니다.


답변

파일이 있는지 여부를 확인하는 간단한 방법 :

if _, err := os.Stat("/path/to/whatever"); os.IsNotExist(err) {
    // path/to/whatever does not exist
}

if _, err := os.Stat("/path/to/whatever"); err == nil {
    // path/to/whatever exists
}

출처 :


답변

파일이 있는지 여부를 확인하는 간단한 방법이 있습니다.

if _, err := os.Stat("./conf/app.ini"); err != nil {
    if os.IsNotExist(err) {
        ..... //Shows error if file not exists
    } else {
       ..... // Shows success message like file is there
    }
}