Wie überprüft man, ob eine Datei in Go existiert?
Hallo zusammen! Ich bin ein Anfänger in Go-Entwicklung und schreibe ein kleines Tool zur Log-Verarbeitung. Bevor ich eine Datei öffne, muss ich prüfen, ob sie auf der Festplatte existiert. In Python bin ich an os.path.exists() gewöhnt, aber in Go finde ich kein Äquivalent.
Ich habe versucht, os.Stat() zu verwenden, bin mir aber nicht sicher, ob das richtig ist. Hier ist mein aktueller Code:
package main
import (
"fmt"
"os"
)
func main() {
path := "/tmp/myfile.log"
// Wie überprüft man, ob die Datei existiert?
_, err := os.Stat(path)
if err == nil {
fmt.Println("Datei existiert!")
} else {
fmt.Println("Datei existiert nicht!")
}
}
Das Problem ist, dass os.Stat() einen Fehler nicht nur zurückgibt, wenn die Datei nicht existiert, sondern auch bei anderen Problemen – zum Beispiel fehlenden Zugriffsrechten. Ich bekomme falsche Positivmeldungen. Wie schreibe ich die Überprüfung richtig? Muss ich os.IsNotExist() verwenden? Oder gibt es eine spezielle Methode in der Standardbibliothek?