This commit is contained in:
Mike Phares 2024-09-10 18:25:11 -07:00
parent 5eac175e4b
commit d2cc0c0e0b

View File

@ -10,13 +10,16 @@ internal static partial class Helper20240910
{ {
string day; string day;
string year; string year;
string yearB;
string yearC;
string checkFile; string checkFile;
FileInfo fileInfo; FileInfo fileInfo;
string weekOfYear; string weekOfYear;
int weekOfYearValue;
string checkDirectory; string checkDirectory;
string sourceDirectory = args[0]; string searchPattern = args[2];
ReadOnlyCollection<string> directoryNames; ReadOnlyCollection<string> directoryNames;
string searchPattern = Path.GetFullPath(args[2]); string sourceDirectory = Path.GetFullPath(args[0]);
Calendar calendar = new CultureInfo("en-US").Calendar; Calendar calendar = new CultureInfo("en-US").Calendar;
string[] files = Directory.GetFiles(sourceDirectory, searchPattern, SearchOption.AllDirectories); string[] files = Directory.GetFiles(sourceDirectory, searchPattern, SearchOption.AllDirectories);
logger.LogInformation("With search pattern '{SearchPattern}' found {files}", searchPattern, files.Length); logger.LogInformation("With search pattern '{SearchPattern}' found {files}", searchPattern, files.Length);
@ -26,17 +29,22 @@ internal static partial class Helper20240910
if (string.IsNullOrEmpty(fileInfo.DirectoryName)) if (string.IsNullOrEmpty(fileInfo.DirectoryName))
continue; continue;
checkDirectory = string.Empty; checkDirectory = string.Empty;
year = fileInfo.LastWriteTime.ToString("yyyy"); year = $"{fileInfo.LastWriteTime:yyyy}";
yearB = $"{fileInfo.LastWriteTime:yyyy}_Year";
day = fileInfo.LastWriteTime.ToString("yyyy-MM-dd"); day = fileInfo.LastWriteTime.ToString("yyyy-MM-dd");
directoryNames = Helpers.HelperDirectory.GetDirectoryNames(fileInfo.DirectoryName); directoryNames = Helpers.HelperDirectory.GetDirectoryNames(fileInfo.DirectoryName);
weekOfYear = $"{fileInfo.LastWriteTime.Year}_Week_{calendar.GetWeekOfYear(fileInfo.LastWriteTime, CalendarWeekRule.FirstDay, DayOfWeek.Sunday):00}"; weekOfYearValue = calendar.GetWeekOfYear(fileInfo.LastWriteTime, CalendarWeekRule.FirstDay, DayOfWeek.Sunday);
yearC = weekOfYearValue < 27 ? $"{fileInfo.LastWriteTime:yyyy}_Year_A" : $"{fileInfo.LastWriteTime:yyyy}_Year_Z";
weekOfYear = $"{fileInfo.LastWriteTime.Year}_Week_{weekOfYearValue:00}";
foreach (string directoryName in directoryNames) foreach (string directoryName in directoryNames)
{ {
if (directoryName == year || directoryName == weekOfYear || directoryName == day) if (directoryName == year || directoryName == yearB || directoryName == yearC || directoryName == weekOfYear || directoryName == day)
continue; continue;
checkDirectory = Path.Combine(checkDirectory, directoryName); checkDirectory = Path.Combine(checkDirectory, directoryName);
} }
checkDirectory = Path.Combine(checkDirectory, year, weekOfYear, day); if (string.IsNullOrEmpty(checkDirectory))
continue;
checkDirectory = Path.Combine(checkDirectory, yearC, weekOfYear, day);
if (!Directory.Exists(checkDirectory)) if (!Directory.Exists(checkDirectory))
_ = Directory.CreateDirectory(checkDirectory); _ = Directory.CreateDirectory(checkDirectory);
checkFile = Path.Combine(checkDirectory, fileInfo.Name); checkFile = Path.Combine(checkDirectory, fileInfo.Name);