У меня есть каталог, который должен иметь 21 файл в диапазоне от 0 до 20. Файл заканчивается символом подчеркивания и числом от 0 до 20 (может быть в формате _01 или _1) с соглашениями об именах как показано ниже:Найдите недостающие имена файлов в каталоге с помощью C#
DirectoryName_00.txt, DirectoryName_01.txt,..., DirectoryName_20.txt
ИлиDirectoryName_0.txt, DirectoryName_1.txt,..., DirectoryName_20.txt
Я хотел выяснить, файлы, отсутствующие сейчас я использую быть низкий фрагмент кода:
for (int pageNum = 0; pageNum <= 20; pageNum++)
{
//templateFiles is list of files in that directory
string expectedTemplateName = string.Format("{0}_{1}.txt", directoryName, pageNum.ToString("00"));
templateFiles.Any(file => file.Equals(expectedTemplateName, StringComparison.OrdinalIgnoreCase));
}
Но с таким подходом я являюсь ограниченным искать файл в формате 00,01,02,03 ... 20 и не в состоянии искать файл в формате 0,1,2,3. ..20. Есть ли короткий подход, с помощью которого я могу искать файлы в обоих форматах (возможно, с помощью RegEx).
Да, это можно сделать, но я искал короткий подход. С RegEx я могу получить файл, который заканчивается с _0 до _ 20, но не смог найти недостающие файлы между 0-20 – Sameer
Regex может помочь вам найти «Матчи», но не может сделать ваш код короче. – kennyzx
Regex может сделать ядро немного короче, но это довольно неуместно, так как его труднее читать и (согласно моему тесту) выполняет намного хуже, чем простое сравнение строк. – hangy