using Microsoft.Extensions.Logging; namespace File_Folder_Helper.ADO2025.PI6; internal static partial class Helper20250521 { private record Record(string Directory, string FileNameWithoutExtension); internal static void MatchDirectory(ILogger logger, List args) { Record record; string[] files; string checkFile; string searchPattern = args[2]; string fileNameWithoutExtension; string searchPatternB = args[3]; Dictionary keyValuePairs = []; string sourceDirectory = Path.GetFullPath(args[0].Split('~')[0]); files = Directory.GetFiles(sourceDirectory, searchPattern, SearchOption.AllDirectories); foreach (string file in files) { keyValuePairs.Add(Path.GetFileNameWithoutExtension(file), Path.GetDirectoryName(file)); } files = Directory.GetFiles(sourceDirectory, searchPatternB, SearchOption.AllDirectories); foreach (string file in files) { fileNameWithoutExtension = Path.GetFileNameWithoutExtension(file); if (!keyValuePairs.TryGetValue(fileNameWithoutExtension, out string? match)) continue; checkFile = Path.Combine(match, Path.GetFileName(file)); if (File.Exists(checkFile)) continue; File.Move(file, checkFile); } } }