Próbuję ustalić, czy ciąg wprowadzony przez użytkownika jest prawidłowy do reprezentowania ścieżki do folderu. Przez prawidłowy mam na myśli odpowiednio sformatowany.
W mojej aplikacji folder reprezentuje miejsce docelowe instalacji. Pod warunkiem, że ścieżka do folderu jest prawidłowa, chcę ustalić, czy folder istnieje i utworzyć go, jeśli nie.
Obecnie używam IO.Directory.Exists( String path )
. Uważam, że działa to dobrze, z wyjątkiem sytuacji, gdy użytkownik nie sformatował poprawnie ciągu. W takim przypadku ta metoda zwróci wartość false, co oznacza, że folder nie istnieje. Ale to jest problem, ponieważ później nie będę mógł utworzyć folderu.
Z mojego googlowania znalazłem sugestię, aby użyć wyrażenia regularnego, aby sprawdzić, czy format jest prawidłowy. Nie mam doświadczenia z wyrażeniami regularnymi i zastanawiam się, czy jest to wykonalne podejście. Oto co znalazłem:
Regex r = new Regex( @"^(([a-zA-Z]\:)|(\\))(\\{1}|((\\{1})[^\\]([^/:*?<>""|]*))+)$" );
return r.IsMatch( path );
Czy test wyrażenia regularnego w połączeniu z Directory.Exists()
, dałby mi wystarczająco dobrą metodę sprawdzenia, czy ścieżka jest prawidłowa i czy istnieje? Wiem, że będzie się to różnić w zależności od systemu operacyjnego i innych czynników, ale program jest przeznaczony tylko dla użytkowników systemu Windows .