Wenn ich ioutil
verwenden, um eine Datei zu lesen, kann es einen Fehler zurückgeben. Aber wenn ich einen Fehlercode filtern möchte, was soll ich tun?Wie kann ich nach bestimmten Fehlertypen unter den von ioutil.ReadFile zurückgegebenen Fehlern suchen?
res, err := ioutil.ReadFile("xxx")
if err != nil {
fmt.Println(err.Error())
}
...
Im Codeausschnitt oben, wenn eine Datei keine Berechtigung hat, wird fmt.Println(err.Error())
"open xxxxx: permission denied
drucken. Wenn ich diesen Fehler erfassen möchte, wie kann ich wissen, dass das Lesen der Datei fehlgeschlagen ist, weil die Berechtigung verweigert wurde?
Sollte ich suchen err.Error()
für die Zeichenfolge permission denied
- das sieht nicht gut aus. Gibt es einen besseren Weg?
Vielen Dank im Voraus.
aktualisieren
Nach @Intermernet Lösung versucht, fand ich, dass es nicht case os.ErrPermission
getroffen wird, es default
und Druck "open xxx: Permission denied"
treffen wird.
@Aedolon Lösung ist in Ordnung, os.IsPermission(err)
kann sagen, dass eine Datei mit der Berechtigung verweigert wurde.
Ich habe festgestellt, dass es nicht trifft ** case os.ErrPermission **, es wird ** ** ** ** drücken und print '" open xxx: Permission denied "' –