Vérifier si une chaîne est un Windows valide répertoire (dossier) chemin

Je suis en train de déterminer si une chaîne de caractères entrée par l'utilisateur est valide pour la représentation d'un chemin d'accès à un dossier. Par valable, je veux dire correctement formaté.

Dans ma demande, le dossier représente une destination de l'installation. À condition que le chemin d'accès au dossier est valide, je veux déterminer si le dossier existe, et de la créer si elle n'existe pas.

Je suis actuellement en utilisant IO.Directory.Exists( String path ). Je trouve que cela fonctionne bien sauf lorsque l'utilisateur n'a pas le format de la chaîne correctement. Lorsque cela se produit, cette méthode renvoie false, ce qui indique que le dossier n'existe pas. Mais c'est un problème parce que je ne vais pas être en mesure de créer le dossier par la suite.

De ma recherche sur google, j'ai trouvé une suggestion pour utiliser une expression régulière pour vérifier si le format est correct. Je n'ai aucune expérience avec des expressions régulières, et je me demande si c'est une approche viable. Voici ce que j'ai trouvé:

Regex r = new Regex( @"^(([a-zA-Z]\:)|(\\))(\\{1}|((\\{1})[^\\]([^/:*?<>""|]*))+)$" );
return r.IsMatch( path );

Serait une expression régulière test en combinaison avec Directory.Exists(), donnez-moi un assez bon méthode pour vérifier si le chemin est valide et si elle existe? Je sais que cela varie en fonction de l'OS et d'autres facteurs, mais le programme est ciblé pour Windows utilisateurs seulement.

  • Si elle ne peut pas créer le répertoire après Directory.Existe renvoie faux, n'est-ce pas une assez bonne indication que l'utilisateur a fourni une mauvaise entrée?
  • stackoverflow.com/questions/3067479/...
  • stackoverflow.com/questions/422090/...
  • vu que la question et il n'a pas de fournir une réponse précise, autres que des règles générales. Le 2ème plus haut réponse ne couvre pas la mise en forme, mais seulement des caractères non valides. Aussi le Répertoire.Existe méthode peut retourner false, mais depuis je veux la possibilité de créer le dossier sur place, je ne peut pas juste aller par qui.
  • Sur le 2e sujet lié - de saisir un seul mot serait encore passer à la validation de la donnée dans les réponses à cette question.
  • double possible de Comment vérifier si une chaîne donnée est légal (permis) de nom de fichier sous Windows?

InformationsquelleAutor Pudpuduk | 2010-06-29