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