>  기사  >  백엔드 개발  >  golang에 파일이 존재하는지 확인하는 방법

golang에 파일이 존재하는지 확인하는 방법

尚
원래의
2019-12-25 09:54:535575검색

golang에 파일이 존재하는지 확인하는 방법

보통 파일을 읽고 쓰기 전에 파일이나 디렉터리가 존재하는지 확인해야 합니다. 그렇지 않으면 특정 처리 방법으로 인해 프로그램 오류가 발생할 수 있습니다. 따라서 작업을 수행하기 전에 파일이 존재하는지 확인하는 것이 가장 좋습니다.

golang이 파일이나 폴더가 존재하는지 확인하는 방법은 os.Stat() 함수에서 반환된 오류 값을 사용하는 것입니다.

1 반환된 오류가 nil이면 파일이나 폴더가 존재하지 않는다는 의미입니다.

2. os.IsNotExist()를 사용하여 반환된 오류 유형이 true로 판단되면 해당 파일 또는 폴더가 존재함을 나타냅니다

3. 반환된 오류가 다른 유형의 경우 존재 여부를 알 수 없습니다

// 判断所给路径文件/文件夹是否存在 
func Exists(path string) bool {  
    _, err := os.Stat(path)    //os.Stat获取文件信息  
    if err != nil {  
        if os.IsExist(err) {  
            return true  
        }  
        return false  
    }  
    return true  
}  
  
// 判断所给路径是否为文件夹  
func IsDir(path string) bool {  
    s, err := os.Stat(path)  
    if err != nil {  
        return false  
    }  
    return s.IsDir()  
}  
  
// 判断所给路径是否为文件  
func IsFile(path string) bool {  
    return !IsDir(path)  
}

참고 :

FileExist가 반환될 때 true이면 파일이 반드시 존재하지 않는 것입니다.

대상 경로의 특정 부분에 대한 읽기 권한이 없는 경우 os.Lstat 및 syscall.Access도 오류를 반환하지만 이 오류로 인해 os.IsNotExist가 true를 반환하지는 않습니다.

파일이 존재하지 않고 파일이 위치한 디렉터리나 그 상위 디렉터리에 대한 접근권한이 없을 경우에도 FileExist는 true를 반환하는데 이때 버그가 발생합니다.

그래서 중요한 점은 파일 존재 여부를 판단하기 전에 먼저 해당 파일에 대한 접근 권한이 있는지와 해당 경로를 판단해야 한다는 것입니다.

더 많은 golang 지식을 알고 싶다면 golang tutorial 칼럼을 주목해주세요.

위 내용은 golang에 파일이 존재하는지 확인하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.