Как найти файлы согласно RegEx в C#

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

Что самое эффективное имя должно сделать это?

7
задан bao 11 May 2010 в 09:51
поделиться

3 ответа

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

Regex reg = new Regex(@"^FA[0-9]{4}\.xml$");
var files = Directory.GetFiles(yourPath, "*.xml").Where(path => reg.IsMatch(path));
18
ответ дан 6 December 2019 в 06:49
поделиться

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

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

Затем из ваших результатов просто пройдитесь по ним и проверьте их на соответствие вашему regex, т.е. что ? символы в имени - это все цифры

6
ответ дан 6 December 2019 в 06:49
поделиться

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

var fa = from f in Directory.GetFiles("FA????.xml")
         where Regex.Match(f, "FA\d\d\d\d\.xml")
         select f;
2
ответ дан 6 December 2019 в 06:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: