보통 파일을 읽고 쓰기 전에 파일이나 디렉터리가 존재하는지 확인해야 합니다. 그렇지 않으면 특정 처리 방법으로 인해 프로그램 오류가 발생할 수 있습니다. 따라서 작업을 수행하기 전에 파일이 존재하는지 확인하는 것이 가장 좋습니다.
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!