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