TicksDirectory
This commit is contained in:
parent
02445261fe
commit
7417cc49e1
@ -6,6 +6,45 @@ namespace File_Folder_Helper.Helpers;
|
||||
internal static class HelperSaveOrCopyContents
|
||||
{
|
||||
|
||||
private record TicksDirectory(string Directory,
|
||||
string DirectoryName,
|
||||
long DirectoryTicks,
|
||||
float? TotalDays);
|
||||
|
||||
private static List<TicksDirectory> UpdateDateVerifyAndGetTicksDirectories(string directory)
|
||||
{
|
||||
List<TicksDirectory> results = new();
|
||||
float? totalDays;
|
||||
string ticksDirectoryName;
|
||||
DirectoryInfo directoryInfo;
|
||||
long? lastDirectoryTicks = null;
|
||||
DateTime dateTime = DateTime.Now;
|
||||
string[] ticksDirectories = Directory.GetDirectories(directory, "*", SearchOption.TopDirectoryOnly);
|
||||
foreach (string ticksDirectory in ticksDirectories)
|
||||
{
|
||||
ticksDirectoryName = Path.GetFileName(ticksDirectory);
|
||||
if (ticksDirectoryName.Length < 3 || ticksDirectoryName.First() != '(' || ticksDirectoryName[^1] != ')')
|
||||
continue;
|
||||
if (!long.TryParse(ticksDirectoryName[1..^1], out long directoryTicks))
|
||||
{
|
||||
if (!long.TryParse(ticksDirectoryName[1..^4], out directoryTicks))
|
||||
throw new NotSupportedException();
|
||||
}
|
||||
directoryInfo = new(ticksDirectory);
|
||||
if (directoryInfo.CreationTime.Ticks != directoryTicks)
|
||||
Directory.SetCreationTime(ticksDirectory, new DateTime(directoryTicks));
|
||||
if (directoryInfo.LastWriteTime.Ticks != directoryTicks)
|
||||
Directory.SetLastWriteTime(ticksDirectory, new DateTime(directoryTicks));
|
||||
totalDays = lastDirectoryTicks is null || new TimeSpan(dateTime.Ticks - directoryTicks).TotalDays < 1 ? null : (float)new TimeSpan(directoryTicks - lastDirectoryTicks.Value).TotalDays;
|
||||
results.Add(new(ticksDirectory, ticksDirectoryName, directoryTicks, totalDays));
|
||||
lastDirectoryTicks = directoryTicks;
|
||||
}
|
||||
string[] compare = (from l in results where l.TotalDays is not null and < 3.95f select l.Directory).ToArray();
|
||||
if (compare.Any())
|
||||
throw new Exception($"Please Consolidate <{string.Join(Environment.NewLine, compare)}>");
|
||||
return results;
|
||||
}
|
||||
|
||||
internal static void SaveOrCopyContents(ILogger log, string argsZero, ConsoleKey consoleKey)
|
||||
{
|
||||
SearchOption searchOption;
|
||||
@ -50,7 +89,7 @@ internal static class HelperSaveOrCopyContents
|
||||
}
|
||||
log.LogInformation("D) Directory, F) File or B) Both?");
|
||||
ConsoleKey dfb = Console.ReadKey().Key;
|
||||
log.LogInformation(string.Empty);
|
||||
log.LogInformation("{empty}", string.Empty);
|
||||
if (dfb is not ConsoleKey.D and not ConsoleKey.F and not ConsoleKey.B)
|
||||
throw new Exception("Not valid");
|
||||
else
|
||||
@ -89,6 +128,8 @@ internal static class HelperSaveOrCopyContents
|
||||
_ = data.AppendLine(s);
|
||||
}
|
||||
}
|
||||
if (clipboardTopDirectoryOnly && consoleKey == ConsoleKey.C)
|
||||
_ = UpdateDateVerifyAndGetTicksDirectories(argsZero);
|
||||
}
|
||||
else if (alongSideAllDirectories)
|
||||
{
|
||||
@ -160,7 +201,7 @@ internal static class HelperSaveOrCopyContents
|
||||
throw new Exception();
|
||||
}
|
||||
TimeSpan timeSpan = new(DateTime.Now.Ticks - now);
|
||||
log.LogInformation(string.Concat(timeSpan.TotalSeconds, " TotalSeconds"));
|
||||
log.LogInformation("{TotalSeconds} TotalSeconds", timeSpan.TotalSeconds);
|
||||
if (alongSideTopDirectoryOnly)
|
||||
{
|
||||
File.WriteAllText(filePathAndName, data.ToString());
|
||||
|
Loading…
x
Reference in New Issue
Block a user