37 lines
1.7 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|
|
|
|
} |