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
Était-ce utile?

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 ()?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top