Maison >développement back-end >Golang >Golang détermine si le fichier existe ou non et crée le fichier.

Golang détermine si le fichier existe ou non et crée le fichier.

尚
original
2019-12-14 10:45:468777parcourir

Golang détermine si le fichier existe ou non et crée le fichier.

1. Déterminer si un fichier ou un dossier existe

golang peut déterminer si un fichier ou un dossier existe via la méthode os.stat() et la méthode os.IsExist() pour juger :

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. Créez des dossiers de manière récursive

Les dossiers récursifs utilisent la méthode os.MkdirAll() :

func MkdirAll(path string, perm FileMode) error

Le premier paramètre est le chemin et le second est l'autorisation. Si le dossier n'existe pas, créez-le ; s'il existe, ne faites rien.

3. Code de test

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)
        }
    }
}

Exécuter dans le terminal :

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存在

Pour plus de connaissances sur Golang, veuillez faire attention au tutoriel golang colonne .

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn