1. 파일이나 폴더가 있는지 확인
golang 파일이나 폴더가 있는지 확인하려면 os.stat() 메서드와 os.IsExist() 메서드를 사용할 수 있습니다.
func isExist(path string)(bool){ _, err := os.Stat(path) if err != nil{ if os.IsExist(err){ return true } if os.IsNotExist(err){ return false } fmt.Println(err) return false } return true }
2 재귀 폴더를 생성하려면
os.MkdirAll() 메서드를 재귀적으로 사용하세요.
func MkdirAll(path string, perm FileMode) error
첫 번째 매개 변수는 경로이고 두 번째 매개 변수는 권한입니다. 폴더가 없으면 생성하고, 있으면 아무 작업도 수행하지 마십시오.
3. 테스트 코드
package main import ( "os" "fmt" ) //判断文件或文件夹是否存在 func isExist(path string)(bool){ _, err := os.Stat(path) if err != nil{ if os.IsExist(err){ return true } if os.IsNotExist(err){ return false } fmt.Println(err) return false } return true } func main(){ //递归创建文件夹 err := os.MkdirAll("./test/1/2", os.ModePerm) if err != nil{ fmt.Println(err) return } dirs := []string{"./test/1", "./test/2", "./test/1.txt"} for _, v := range dirs{ if isExist(v){ fmt.Printf("%s is exist!", v) }else{ fmt.Printf("%s is not exist!", v) } } }
터미널에서 실행:
ma@ma:/data/code/go/src/file_exist$ tree . └── file_exist.go 0 directories, 1 file ma@ma:/data/code/go/src/file_exist$ go run file_exist.go # 运行程序 ./test/1 is exist! ./test/2 is not exist! ./test/1.txt is not exist! ma@ma:/data/code/go/src/file_exist$ tree . ├── file_exist.go └── test └── 1 └── 2 3 directories, 1 file ma@ma:/data/code/go/src/file_exist$ touch test/1.txt # 创建1.txt ma@ma:/data/code/go/src/file_exist$ go run file_exist.go ./test/1 is exist! ./test/2 is not exist! ./test/1.txt is exist! # 1.txt存在
더 많은 golang 지식을 알고 싶다면 golang tutorial 칼럼을 주목해주세요.
위 내용은 Golang은 파일이 존재하는지 여부를 확인하고 파일을 생성합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!