Heim >Backend-Entwicklung >Golang >Golang stellt fest, ob die Datei existiert oder nicht und erstellt die Datei.

Golang stellt fest, ob die Datei existiert oder nicht und erstellt die Datei.

尚
Original
2019-12-14 10:45:468797Durchsuche

Golang stellt fest, ob die Datei existiert oder nicht und erstellt die Datei.

1. Bestimmen Sie, ob eine Datei oder ein Ordner vorhanden ist

golang kann mithilfe der Methode os.stat() ermitteln, ob eine Datei oder ein Ordner vorhanden ist und os.IsExist()-Methode zur Beurteilung:

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. Ordner rekursiv erstellen

Rekursive Ordner verwenden die os.MkdirAll()-Methode:

func MkdirAll(path string, perm FileMode) error

Der erste Parameter ist der Pfad und der zweite die Berechtigung. Wenn der Ordner nicht vorhanden ist, erstellen Sie ihn. Wenn er vorhanden ist, unternehmen Sie nichts.

3. Testcode

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

Im Terminal ausführen:

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

Für weitere Golang-Kenntnisse beachten Sie bitte das Golang-Tutorial Spalte .

Das obige ist der detaillierte Inhalt vonGolang stellt fest, ob die Datei existiert oder nicht und erstellt die Datei.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn