Соответствие шаблону Directory.GetFiles () в C #

Я использую Directory.GetFiles () для составления списка файлов по заданному шаблону. Это отлично работает для большинства шаблонов, которые я ищу (например, zip, rar, sfv).

Вот как я составляю список (более или менее). Проблема заключается в шаблоне чисел от .001 до .999, который я хочу перечислить.

alArrayPatternText.Add("*.zip");
alArrayPatternText.Add("*.sfv");
alArrayPatternText.Add("*.r??");
alArrayPatternText.Add("*.001");
for (int i = 2; i <= 999; i++)
{
    string findNumber = String.Format("{0:000}", i);
    alArrayPatternText.Add("*." + findNumber);
}

Затем я вызываю

string[] files = Directory.GetFiles(strDirName, varPattern);

для каждого шаблона в массиве, что кажется очень плохой идеей, поскольку в списке есть 1002 записи и проверка если в каталоге есть каждый из них, это займет слишком много времени.

Есть ли лучший способ сделать это?

5
задан abatishchev 12 December 2010 в 19:15
поделиться