file-folder-helper/Day/2023-Q4/Helper-2023-10-16.cs
Mike Phares 84ad97ac6e SortCodeMethods
DirectoryToISO
TextToJson
2024-01-08 10:02:30 -07:00

37 lines
1.7 KiB
C#

using Microsoft.Extensions.Logging;
using System.Globalization;
namespace File_Folder_Helper.Day;
internal static class Helper20231016
{
internal static void MoveDirectory(ILogger<Worker> logger, string argsZero)
{
string weekOfYear;
string checkDirectory;
long ticks = DateTime.Now.AddHours(-84).Ticks;
DirectoryInfo argsZeroDirectoryInfo = new(argsZero);
Calendar calendar = new CultureInfo("en-US").Calendar;
DirectoryInfo[] directoryInfoCollection = argsZeroDirectoryInfo.GetDirectories();
string fileShareDirectory = Path.GetDirectoryName(argsZero) ?? throw new Exception();
string archiveDirectory = Path.Combine(fileShareDirectory, "Archive");
if (!Directory.Exists(archiveDirectory))
throw new NotSupportedException();
foreach (DirectoryInfo directoryInfo in directoryInfoCollection)
{
foreach (DirectoryInfo directory in directoryInfo.GetDirectories())
{
if (directory.CreationTime.Ticks > ticks)
continue;
weekOfYear = calendar.GetWeekOfYear(directory.CreationTime, CalendarWeekRule.FirstDay, DayOfWeek.Sunday).ToString("00");
checkDirectory = Path.Combine(archiveDirectory, directoryInfo.Name, $"{directory.CreationTime.Year}_Week_{weekOfYear}", directory.CreationTime.ToString("yyyy-MM-dd"));
if (!Directory.Exists(checkDirectory))
continue;
Directory.Move(directory.FullName, Path.Combine(checkDirectory, directory.Name));
logger.LogInformation("{directory.CreationTime} - {directory.Name}", directory.CreationTime, directory.Name);
}
}
}
}