Я пытаюсь определить, подходит ли строка, введенная пользователем, для представления пути к папке. Под допустимым я подразумеваю правильно отформатированный.
В моем приложении папка представляет собой место установки. При условии , что путь к папке является действительным, я хочу , чтобы определить , является ли папка существует, и создать его , если он не делает.
Я сейчас использую IO.Directory.Exists( String path )
. Я считаю, что это работает нормально, за исключением случаев, когда пользователь неправильно форматирует строку. Когда это произойдет, этот метод вернет false, что указывает на то, что папка не существует. Но это проблема, потому что потом я не смогу создать папку.
В моем поиске в Google я нашел предложение использовать регулярное выражение для проверки правильности формата. У меня нет опыта работы с регулярными выражениями, и мне интересно, насколько это жизнеспособный подход. Вот что я нашел:
Regex r = new Regex( @"^(([a-zA-Z]\:)|(\\))(\\{1}|((\\{1})[^\\]([^/:*?<>""|]*))+)$" );
return r.IsMatch( path );
Может ли проверка регулярного выражения в сочетании с Directory.Exists()
, дать мне достаточно хороший метод, чтобы проверить, действителен ли путь и существует ли он? Я знаю, что это будет зависеть от ОС и других факторов, но программа предназначена только для пользователей Windows .