Wie prüft man, ob eine Datei in Go existiert?
Go's Standardbibliothek hat keine Funktion, die ausschließlich dazu dient, zu prüfen, ob eine Datei existiert oder nicht (wie Python's os.path.exists
). Was ist der idiomatische Weg, dies zu tun?
390
3
Um zu prüfen, ob eine Datei nicht existiert, äquivalent zu Python's
if not os.path.exists(filename)
:Um zu prüfen, ob eine Datei existiert, äquivalent zu Python's
if os.path.exists(filename)
:Bearbeitet: nach aktuellen Kommentaren
Sie sollten die Funktionen
os.Stat()
undos.IsNotExist()
wie im folgenden Beispiel verwenden:Das Beispiel ist hier entnommen.
Das Beispiel von user11617 ist falsch; es meldet, dass die Datei auch dann existiert, wenn sie nicht existiert, aber ein anderer Fehler vorliegt.
Die Signatur sollte Exists(string) (bool, error) lauten. Und dann sind die Aufrufseiten auch nicht besser.
Der Code, den er geschrieben hat, wäre besser als:
Aber ich schlage stattdessen Folgendes vor: