Avatar ·

Wie überprüft man, ob eine Datei oder ein Verzeichnis in Go existiert?

Hallo zusammen! Ich habe gerade angefangen, Go zu lernen, und bin auf eine scheinbar einfache Aufgabe gestoßen: Ich muss eine Funktion schreiben, die überprüft, ob eine Datei oder ein Ordner unter einem bestimmten Pfad existiert. Ich bin Python gewohnt, wo es `os.path.exists()` gibt, aber in Go finde ich keinen so einfachen Weg. Ich habe versucht, `os.Stat()` zu verwenden, verstehe aber nicht ganz, wie man Fehler richtig behandelt. Zum Beispiel habe ich diesen Code geschrieben: ```go package main import ( "fmt" "os" ) func main() { path := "./test.txt" _, err := os.Stat(path) if err == nil { fmt.Println("Datei existiert") } else if os.IsNotExist(err) { fmt.Println("Datei existiert nicht") } else { fmt.Println("Ein Fehler ist aufgetreten:", err) } } ``` Aber mich verwirrt, dass `os.Stat()` einen Fehler nicht nur zurückgibt, wenn die Datei nicht existiert, sondern auch bei anderen Problemen (z.B. unzureichende Berechtigungen). Mache ich es richtig? Gibt es vielleicht einen idiomatischeren Weg in Go? Und wie unterscheidet man nach der Überprüfung eine Datei von einem Verzeichnis?