У меня есть эта функция, в которой вы передаете путь к каталогу, содержащему имя папки, например UPDATE_20162406_x.xx (версия), файлы всегда будут иметь одинаковое начало, но дата и версия будут разными, теперь мне нужно передать путь к UPDATE_someDATE_x.xx функции, которая проверяет, есть ли какая-либо другая папка с той же версией, это запрос, который у меня есть, который нужно изменить:Поиск папки с таким же именем с использованием Linq C#
public string NewestUpdate(string Directoria)
{
string caminho = "";
Version version = null;
var lastVersion = new DirectoryInfo(Directoria).EnumerateDirectories()
.Where(d => d.Name.ToLower().StartsWith("update_"))
.Select(d => new { Directory = d, Token = d.Name.Split('_') })
.Where(x => x.Token.Length == 3 && Version.TryParse(x.Token[2], out version))
.Select(x => new { x.Directory, Date = x.Token[1], Version = version })
.OrderByDescending(x => x.Version)
.FirstOrDefault();
if (lastVersion != null)
{
caminho = lastVersion.Directory.FullName.ToString();
Global.LatestVersion = lastVersion.Version.ToString();
}
return caminho;
}
Я не знаю linq почти ничего, и я не могу написать правильный запрос, чтобы сделать это. Любая помощь приветствуется. спасибо
Вы пробовали с помощью 'Directory.GetDirectories (путь)' метод? Это возвращает 'string []' всех каталогов в указанном вами пути. Затем вы можете сделать «.Where (x => x.StartsWith (« UPDATE _ »)), чтобы получить коллекцию из этих папок :) Ссылка здесь: https://msdn.microsoft.com/en-us/library /c1sez4sc(v=vs.110).aspx –
Ваш код получает самую последнюю версию. Так ? Вы хотите передать номер версии этому методу и проверить, есть ли у вас другая папка с той же версией? – user3185569
@ user3185569 Я сделаю для этого новую функцию, но да, это именно так. и если он существует, я просто возвращаю true – LikeIfYouCaredAboutMyName