Heim > Backend-Entwicklung > Golang > Golang liest, ob die Datei existiert

Golang liest, ob die Datei existiert

Freigeben: 2020-03-27 10:32:40
Original
2767 Leute haben es durchsucht

Golang liest, ob die Datei existiert

Die Feststellung, ob eine Datei vorhanden ist, ist eine sehr häufige Anforderung, und es gibt viele Lösungen, um diese Funktion in Golang zu erreichen.

Plattformübergreifende Implementierung

Die Idee der plattformübergreifenden Implementierung ist sehr einfach. Wenn eine Datei nicht vorhanden ist, wird die Verwendung von os.Lstat definitiv zurückgegeben Ein Fehler. Beurteilen Sie einfach den Fehler. Es bedeutet lediglich, dass die Datei nicht existiert.

Vielleicht ist Ihnen aufgefallen, dass einige Codes os.Open verwenden, um die obige Arbeit abzuschließen, aber es ist am besten, dies nicht zu tun, denn obwohl es keinen Unterschied in den von den beiden ausgeführten Funktionen gibt, ist der Aufrufaufwand höher open und stat sind unterschiedlich. Letzteres ist kleiner als Ersteres, und um festzustellen, ob eine Datei existiert, ist es sinnvoller, ihre Metadaten zu überprüfen, als direkt zu versuchen, sie zu öffnen.

Dann werfen wir einen Blick auf den implementierten Code:

func FileExist(path string) bool {
  _, err := os.Lstat(path)  
return !os.IsNotExist(err)
}
Nach dem Login kopieren

POSIX-Plattform-Implementierung

Wenn Ihr Programm für die POSIX-Plattform ist (z. B. UNIX, Linux usw.), dann gibt es eine einfachere Lösung - syscall.Access.

syscall.Access bietet Benutzern die Möglichkeit, Dateimetainformationen zu überprüfen. Es wird normalerweise verwendet, um Dateiberechtigungen und das Vorhandensein von Dateien zu überprüfen.

Überprüfen Sie die Datei mithilfe des Flags syscall.F_OK. Wenn sie nicht vorhanden ist, wird derselbe Fehler wie bei os.Lstat zurückgegeben:

func FileExist(path string) bool {
  err := syscall.Access(path, syscall.F_OK)
  return !os.IsNotExist(err)
}
Nach dem Login kopieren

Der größte Vorteil dieser Implementierung besteht darin, dass sie ist einfach und intuitiv, aber unter Windows nicht verfügbar.

Weitere Golang-Kenntnisse finden Sie in der Spalte Golang-Tutorial auf der chinesischen PHP-Website.

Das obige ist der detaillierte Inhalt vonGolang liest, ob die Datei existiert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage