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 .