Avatar ·

Wie überprüft man, ob eine Datei in Go existiert? (ohne unnötige Datenrennen)

Hallo zusammen! Ich habe gerade angefangen, Go zu lernen, und bin auf eine scheinbar einfache Aufgabe gestoßen: Ich muss überprüfen, ob eine Datei auf der Festplatte existiert, bevor ich sie lese oder schreibe. In Python habe ich das so gemacht: ```go import os if os.path.exists("myfile.txt"): print("Datei existiert") ``` Aber in Go habe ich keine so einfache Funktion gefunden. In der Dokumentation des `os`-Pakets gibt es die Funktion `Stat()`, die einen Fehler zurückgibt, wenn die Datei nicht existiert. Ich habe diesen Code geschrieben: ```go package main import ( "fmt" "os" ) func main() { _, err := os.Stat("myfile.txt") if err != nil { if os.IsNotExist(err) { fmt.Println("Datei existiert nicht") } else { fmt.Println("Ein anderer Fehler ist aufgetreten:", err) } } else { fmt.Println("Datei existiert") } } ``` Es scheint zu funktionieren, aber mich verwirrt, dass in der Go-Dokumentation oft steht, dass die Überprüfung auf Existenz vor dem Lesen/Schreiben ein Antipattern ist, da zwischen der Überprüfung und der Operat