Как найти файлы в соответствии с RegEx в C # - PullRequest
6 голосов
/ 11 мая 2010

Мне нужно получить список файлов на некотором диске с путями, которые соответствуют определенному шаблону, например FA \ d \ d \ d \ d.xml, где \ d - это цифра (0,1,2..9). Таким образом, файлы могут иметь имена, такие как FA5423.xml.

Какое наиболее эффективное имя для этого?

Ответы [ 3 ]

17 голосов
/ 11 мая 2010

Вы используете C # 3?

Regex reg = new Regex(@"^FA[0-9]{4}\.xml$");
var files = Directory.GetFiles(yourPath, "*.xml").Where(path => reg.IsMatch(path));
5 голосов
/ 11 мая 2010

Вы можете сделать что-то вроде:

System.IO.Directory.GetFiles(@"C:\", "FA????.xml", SearchOption.AllDirectories);

Затем из ваших результатов просто выполните итерацию по ним и сверьте их с вашим регулярным выражением, т. Е. Все символы ? в имени - это числа

1 голос
/ 11 мая 2010

Используйте API Справочника, чтобы найти FA????.xml, и запустите полученный список через фильтр регулярных выражений:

var fa = from f in Directory.GetFiles("FA????.xml")
         where Regex.Match(f, "FA\d\d\d\d\.xml")
         select f;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...