Test für einen syntaktisch korrekten Pfad
-
08-07-2019 - |
Frage
In .NET gibt es eine Funktion, wenn ein String-Tests ist syntaktisch korrekter Pfad? Ich will nicht, dass es speziell zu testen, ob der Weg tatsächlich vorhanden ist.
meine derzeitige Meinung dazu ist ein regulärer Ausdruck:
([a-zA-Z]:|\\)?\\?([^/\\:*?"<>|]+[/\\])*[^/\\:*?"<>|]*
Treffer:
c:\
bbbb
\\bob/john\
..\..\
verwirft:
xy:
c:\\bob
Lösung
Ich würde vorschlagen, nur einen regulären Ausdruck dafür verwenden, da Sie speziell nicht wollen, zu testen, ob der Pfad vorhanden ist.
Hier ist etwas google half mir raben:
RegEx="^([a-zA-Z]\:|\\\\[^\/\\:*?"<>|]+\\[^\/\\:*?"<>|]+)(\\[^\/\\:*?"<>|]+)+(\.[^\/\\:*?"<>|]+)$"
Sie können kombinieren diese mit System.IO.Path.GetInvalidPathChars () -Methode und machen die Regex dynamisch alle der ungültigen Zeichen auszuschließen.
Andere Tipps
Ich glaube, System.IO.Path.GetFullPath (Pfad) wird eine Ausnahme werfen, wenn es ohne zu überprüfen, keine syntaktisch korrekten Pfad ist, wenn es vorhanden ist.
Das könnte Sie können System.IO.Path und die GetInvalidPathChars () Funktion benutzen?