Überprüfen der Dateiexistenz in Go
Beim Arbeiten mit Dateien in Go ist es oft notwendig, festzustellen, ob eine Datei vorhanden ist, bevor mit weiteren Vorgängen fortgefahren wird . Im Gegensatz zu Pythons os.path.exists bietet die Go-Standardbibliothek keine direkte Funktion für diesen Zweck.
Idiomatische Methode zum Überprüfen der Dateiexistenz
Um zu überprüfen, ob Eine Datei existiert nicht:
if _, err := os.Stat("/path/to/whatever"); errors.Is(err, os.ErrNotExist) { // path/to/whatever does not exist }
Um zu überprüfen, ob eine Datei vorhanden ist existiert:
if _, err := os.Stat("/path/to/whatever"); err == nil { // path/to/whatever exists } else if errors.Is(err, os.ErrNotExist) { // path/to/whatever does *not* exist } else { // Schrodinger: file may or may not exist. See err for details. // Therefore, do *NOT* use !os.IsNotExist(err) to test for file existence }
Erklärung
Die Funktion os.Stat gibt ein FileInfo-Objekt zurück, das die Attribute der Datei darstellt, oder einen Fehler, wenn die Datei nicht existiert. Indem Sie die Funktion „errors.Is“ verwenden, um den Fehler mit „os.ErrNotExist“ zu vergleichen, können Sie zwischen der nicht vorhandenen Datei und anderen Fehlern unterscheiden.
Achtung
Vermeiden Sie die Verwendung von Negation von os.IsNotExist (z. B. !os.IsNotExist(err)), um die Existenz einer Datei zu testen, da dies zu unerwartetem Verhalten führen kann in einigen Fällen.
Das obige ist der detaillierte Inhalt vonWie kann ich in Go prüfen, ob eine Datei vorhanden ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!