Sto cercando di determinare se una stringa inserita da un utente è valida per rappresentare un percorso a una cartella. Per valido, intendo formattato correttamente.
Nella mia applicazione, la cartella rappresenta una destinazione di installazione. A condizione che il percorso della cartella sia valido, voglio determinare se la cartella esiste e crearla in caso contrario.
Attualmente sto usando IO.Directory.Exists( String path ). Trovo che funzioni bene tranne quando l'utente non formatta correttamente la stringa. Quando ciò accade, questo metodo restituirà false che indica che la cartella non esiste. Ma questo è un problema perché non sarò in grado di creare la cartella in seguito.
Dal mio googling ho trovato un suggerimento per utilizzare un'espressione regolare per verificare se il formato è corretto. Non ho esperienza con le espressioni regolari e mi chiedo se questo sia un approccio praticabile. Ecco cosa ho trovato:
Regex r = new Regex( @"^(([a-zA-Z]\:)|(\\))(\\{1}|((\\{1})[^\\]([^/:*?<>""|]*))+)$" );
return r.IsMatch( path );
Un test di espressione regolare in combinazione con Directory.Exists(), mi darebbe un metodo abbastanza buono per verificare se il percorso è valido e se esiste? So che questo varierà in base al sistema operativo e ad altri fattori, ma il programma è destinato solo agli utenti Windows .