Directory Renaming

This commit is contained in:
2025-01-14 13:00:52 -07:00
parent 5c08ac222a
commit 9f4286e3e9
3 changed files with 61 additions and 121 deletions

View File

@ -0,0 +1,54 @@
using Microsoft.Extensions.Logging;
namespace File_Folder_Helper.ADO2025.PI4;
internal static partial class Helper20250114
{
private static void Rename(string[] directories, string dateFormat)
{
string[] files;
DateTime dateTime;
FileInfo fileInfo;
string checkDirectory;
foreach (string directory in directories)
{
dateTime = DateTime.MinValue;
files = Directory.GetFiles(directory, "*", SearchOption.AllDirectories);
foreach (string file in files)
{
fileInfo = new(file);
if (dateTime > fileInfo.LastWriteTime)
continue;
dateTime = fileInfo.LastWriteTime;
}
if (dateTime == DateTime.MinValue)
continue;
checkDirectory = Path.Combine(Path.GetDirectoryName(directory) ?? throw new Exception(), dateTime.ToString(dateFormat));
if (checkDirectory != directory)
{
if (Directory.Exists(checkDirectory))
continue;
Directory.Move(directory, checkDirectory);
}
Directory.SetLastWriteTime(checkDirectory, dateTime);
}
}
private static void Rename(ILogger<Worker> logger, string sourceDirectory, string searchPattern, string dateFormat)
{
string[] directories = Directory.GetDirectories(sourceDirectory, searchPattern);
logger.LogInformation("directories: {directories}", directories.Length);
Rename(directories, dateFormat);
}
internal static void Rename(ILogger<Worker> logger, List<string> args)
{
string dateFormat = args[3];
string[] searchPatterns = args[2].Split('|');
string sourceDirectory = Path.GetFullPath(args[0]);
foreach (string searchPattern in searchPatterns)
Rename(logger, sourceDirectory, searchPattern, dateFormat);
}
}