Files
.vscode
ADO2024
PI1
PI2
PI3
PI4
Helper-2024-11-08.cs
Helper-2024-11-15.cs
Helper-2024-12-04.cs
Helper-2024-12-12.cs
Helper-2024-12-17.cs
Helper-2024-12-24.cs
ADO2025
Day
Helpers
Models
Scripts
Server-Management
.editorconfig
.gitignore
.prettierignore
File-Folder-Helper.csproj
Program.cs
README.md
Worker.cs
package-lock.json
package.json
file-folder-helper/ADO2024/PI4/Helper-2024-12-12.cs
2024-12-12 12:20:56 -07:00

35 lines
1.3 KiB
C#

using Microsoft.Extensions.Logging;
namespace File_Folder_Helper.ADO2024.PI4;
internal static partial class Helper20241212
{
internal static void Rename(ILogger<Worker> logger, List<string> 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);
}
}
}