Directory Renaming
This commit is contained in:
54
ADO2025/PI4/Helper-2025-01-14.cs
Normal file
54
ADO2025/PI4/Helper-2025-01-14.cs
Normal 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);
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user