Überprüfen Sie, ob eine Zeichenfolge ein gültiger Windows-Verzeichnispfad ist

Ich versuche, um zu bestimmen, ob ein string-input, die von einem Benutzer gültig ist, darstellt, einen Pfad zu einem Ordner. Durch das gültige, ich meine richtig formatiert.

In meiner Anwendung, der Ordner stellt eine Installations-Ziel. Vorausgesetzt, dass Sie den Ordner-Pfad ist gültig, ich möchte, um zu bestimmen, wenn der Ordner existiert, und erstellt wenn es nicht.

Ich bin derzeit mit IO.Directory.Exists( String path ). Ich finde, dass dies funktioniert gut, außer wenn der Benutzer nicht formatieren Sie die Zeichenfolge ordnungsgemäß. Wenn das passiert, gibt diese Methode false zurück, welche besagt, dass der Ordner nicht vorhanden ist. Aber das ist ein problem, weil ich nicht in der Lage sein, um den Ordner zu erstellen danach.

Aus meiner googeln fand ich einen Vorschlag, einen regulären Ausdruck zu verwenden, um zu überprüfen, ob das format korrekt ist. Ich habe keine Erfahrung mit regulären Ausdrücken, und ich wundere mich, wenn das ein brauchbarer Ansatz ist. Hier ist was ich gefunden habe:

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

Reguläre Ausdruck test in Kombination mit Directory.Exists()geben Sie mir eine gut genug Methode zu überprüfen, ob der Pfad gültig ist und ob es existiert? Ich weiß, das variiert mit dem Betriebssystem und anderen Faktoren, aber das Programm ist gezielt für Windows Benutzer nur.

InformationsquelleAutor der Frage Dinoo | 2010-06-29

Schreibe einen Kommentar