Das Golang-Dateipfad-Modul ( Ссылка ) enthält einige Funktionen zum Bearbeiten von Pfaden und os.Stat
kann verwendet werden Überprüfen Sie, ob eine Datei existiert. Gibt es eine Möglichkeit zu überprüfen, ob eine Zeichenfolge tatsächlich einen gültigen Pfad überhaupt bildet (unabhängig davon, ob sich eine Datei auf diesem Pfad befindet oder nicht)?
Dieses Problem klingt sehr einfach, ist es aber nicht. Hier sind zwei mögliche Lösungen, die ich gefunden habe:
Die Idee hier ist, einen bestimmten Dateipfad basierend auf Regeln zu überprüfen.
Betriebssystem
Der erste ist der einfachste. Go bietet verschiedene Tools für OS-spezifische Dateinamen / Trennzeichen / ...
Beispiel im Paket os :
%Vor%Eine weitere Datei im Paket Dateipfad :
%Vor%Dateisystem
Dateisysteme haben unterschiedliche Einschränkungen. Die maximale Länge oder der erlaubte Zeichensatz kann variieren. Leider gibt es keine Möglichkeit, (zumindest soweit ich weiß) zu bestimmen, welches Dateisystem (e) Ihr Pfad durchlaufen wird.
Reservierte Keywords
Haben Sie eine schwarze Liste aller reservierten Schlüsselwörter für ein bestimmtes Betriebssystem.
Für diese Lösung würde ich einen Lexer / Parser .
Der Kompromiss ist, dass es nicht 100% garantieren würde, dass ein Dateipfad gültig ist.
Versuch, die Datei zu erstellen und gleich danach zu löschen.
%Vor%Der Hauptvorteil dieser Lösung besteht darin, dass sie unkompliziert und genauer ist. Wenn eine Datei bereits existiert oder auf einem bestimmten Pfad erstellt werden kann, bedeutet dies, dass sie gültig ist. Diese Lösung kann jedoch auch ungültige Pfade aufgrund eines eingeschränkten Zugriffs ungültig machen.
Die erste Lösung wird weniger genau sein als die zweite, wenn auch aus puristischer Sicht korrekter. Die Lösung, die Sie ergreifen sollten, hängt von Ihrem Bedarf ab. Bevorzugen Sie falsch positive oder falsch negative Ergebnisse? Die erste Lösung kann Ihnen falsche Positive geben, während die zweite falsch negative Ergebnisse liefert.
Tags und Links go