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