Как найти неизвестную папку в Dictionary

Вот у меня есть

public static Dictionary<string, string> data = new Dictionary<string, string>()
{
  { "PATH", @"C:\Users\AdminST\AppData\Roaming\Adobe\Flash Player\NativeCache\bcore-22.0.3497.01.2.12.0" },
}

Как мне проходясь циклом если на компьютере допустим изменилось bcore-22.0.3497.01.2.12.0 изменилась версия (число) то оно его уже не найдёт. Я хотел попробовать что-то типо добавить: bcore-*.* но как можно заставит через foreach искать что после . в EnumerateFiles

foreach (var spisok in data)
{
  foreach (var files in Directory.EnumerateFiles(spisok, "*.*")
  { 
    // ...
  }
}

Ответы (2 шт):

Автор решения: Yotic

Есть 2 метода:

1. Если версия всегда с одинаковым количеством цифр.
Для поиска по такому лёгкому паттерну подойдёт Directory.GetDirectories(путь, паттерн названия папки, метод поиска)

string path = "D:\\NativeCache";
string pattern = "bcore-*.*.*";
string[] dirs = Directory.GetDirectories(path, pattern, SearchOption.TopDirectoryOnly); //SearchOption.TopDirectoryOnly нужен для поиска папок только в поверхностной папке, что-бы случайно не словить папку из какой-нибудь под-папки.

Далее можно сделать проверку dirs.Length > 0 и взять первую папку из массива.

2. Если не важна версия и нужно найти по началу папки.

string path = "D:\\NativeCache";
string startWithPattern = "bcore-";
string[] dirs = Directory.GetDirectories(path);
List<string> predictDirs = new List<string>();
foreach (string dir in Directory.EnumerateDirectories(path))
{
    string dirName = dir.Split('\\')[^1];
    if (dirName.StartsWith(startWithPattern))
        predictDirs.Add(dir);
}
→ Ссылка
Автор решения: Alexander Petrov

Вероятно, вам может помочь File globbing in .NET.

Код может выглядеть следующим образом:

Matcher matcher = new Matcher();
matcher.AddInclude("bcore-*");

var directoryPath = @"C:\Users\AdminST\AppData\Roaming\Adobe\Flash Player\NativeCache";

foreach (var result in matcher.GetResultsInFullPath(directoryPath))
    Console.WriteLine(result);

Указываете шаблон поиска и путь к каталогу. Их можете брать из словаря.

→ Ссылка