Test pour un chemin syntaxiquement correct
-
08-07-2019 - |
Question
Dans .NET, existe-t-il une fonction qui teste si une chaîne est syntaxiquement un chemin correct? Je ne veux surtout pas que cela teste si le chemin existe réellement.
mon point de vue actuel est une regex:
([a-zA-Z]:|\\)?\\?([^/\\:*?"<>|]+[/\\])*[^/\\:*?"<>|]*
correspond à:
c:\
bbbb
\\bob/john\
..\..\
rejette:
xy:
c:\\bob
La solution
Je suggérerais simplement d'utiliser un regex pour cela puisque vous ne voulez pas tester si le chemin existe.
Voici quelque chose google m'a aidé à déterrer :
RegEx="^([a-zA-Z]\:|\\\\[^\/\\:*?"<>|]+\\[^\/\\:*?"<>|]+)(\\[^\/\\:*?"<>|]+)+(\.[^\/\\:*?"<>|]+)<*>quot;
Vous pouvez combiner cela avec la méthode System.IO.Path.GetInvalidPathChars () et faire en sorte que l'expression régulière exclue dynamiquement tous les caractères non valides.
Autres conseils
Je pense que System.IO.Path.GetFullPath (chemin) lève une exception s'il ne s'agit pas d'un chemin syntaxiquement correct sans vérifier s'il existe.
Vous pourrez peut-être utiliser System.IO.Path et la fonction GetInvalidPathChars ()?