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
最初のパラメータはパスで、2 番目のパラメータは権限です。フォルダーが存在しない場合は作成し、存在する場合は何もしません。
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 チュートリアルを参照してください。 ### カラム 。
以上がGolangはファイルが存在するかどうかを判断してファイルを作成します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。