using Microsoft.Extensions.Logging; namespace File_Folder_Helper.ADO2024.PI4; internal static partial class Helper20241212 { internal static void Rename(ILogger logger, List args) { string newFile; string fileName; string newFileName; string directoryName; string searchPattern = args[2]; string[] searchPatterns = args[3].Split('|'); string sourceDirectory = Path.GetFullPath(args[0]); string[] files = Directory.GetFiles(sourceDirectory, searchPattern, SearchOption.AllDirectories); if (files.Length == 0) logger.LogError("No files found in {sourceDirectory} with search pattern {searchPattern}", sourceDirectory, searchPattern); foreach (string file in files) { fileName = Path.GetFileName(file); directoryName = Path.GetDirectoryName(file) ?? throw new Exception(); newFileName = fileName; foreach (string pattern in searchPatterns) newFileName = newFileName.Replace(pattern, ""); newFile = Path.Combine(directoryName, newFileName); if (File.Exists(newFile)) logger.LogError("File {newFile} already exists", newFile); else File.Move(file, newFile); } } }