ZipPath and yml

This commit is contained in:
2023-03-16 08:42:49 -07:00
parent 91b162a7eb
commit 5e87407ead
38 changed files with 1392 additions and 683 deletions

View File

@ -165,14 +165,18 @@ public class FileRead : Shared.FileRead, IFileRead
private void ZipFilesByDate(string sourceDirectory, SearchOption searchOption, string dayFormat)
{
#nullable enable
string key;
bool addFile;
string? zipPath;
string fileName;
string[] segments;
string[] subFiles;
string weekOfYear;
FileInfo fileInfo;
string zipDirectory;
DateTime creationTime;
string? directoryName;
DateTime lastWriteTime;
DateTime nowDateTime = DateTime.Now;
Regex regex = new("[a-zA-Z0-9]{1,}");
@ -201,7 +205,10 @@ public class FileRead : Shared.FileRead, IFileRead
foreach (string topDirectory in topDirectories)
{
keyValuePairs.Clear();
directoryName = Path.GetDirectoryName(topDirectory);
subFiles = Directory.GetFiles(topDirectory, "*", searchOption);
zipPath = string.IsNullOrEmpty(directoryName) ? null : Path.Combine(directoryName, "ZipPath");
zipDirectory = zipPath is not null && Directory.Exists(zipPath) ? zipPath : topDirectory;
foreach (string subFile in subFiles)
{
addFile = false;
@ -253,12 +260,12 @@ public class FileRead : Shared.FileRead, IFileRead
}
foreach (KeyValuePair<string, List<string>> element in keyValuePairs)
{
key = Path.Combine(topDirectory, $"{element.Key}.zip");
key = Path.Combine(zipDirectory, $"{element.Key}.zip");
if (File.Exists(key))
{
for (short i = 101; i < short.MaxValue; i++)
{
key = Path.Combine(topDirectory, $"{element.Key}_{i}.zip");
key = Path.Combine(zipDirectory, $"{element.Key}_{i}.zip");
if (!File.Exists(key))
break;
}
@ -269,18 +276,24 @@ public class FileRead : Shared.FileRead, IFileRead
_ = zip.CreateEntryFromFile(file, Path.GetFileName(file));
File.Delete(file);
}
if (zipPath is not null && Directory.Exists(zipPath) && !string.IsNullOrEmpty(directoryName))
{
try
{ Directory.SetLastWriteTime(directoryName, DateTime.Now); }
catch (Exception) { }
}
}
subFiles = Directory.GetFiles(topDirectory, "*.zip", SearchOption.TopDirectoryOnly);
subFiles = Directory.GetFiles(zipDirectory, "*.zip", SearchOption.TopDirectoryOnly);
foreach (string subFile in subFiles)
{
fileName = Path.GetFileNameWithoutExtension(subFile);
segments = fileName.Split('_');
if (segments.Length > 2)
fileName = string.Concat(segments[0], '_', segments[1], '_', segments[2]);
if (weeks.ContainsKey(fileName))
if (weeks.TryGetValue(fileName, out DateTime value))
{
try
{ File.SetLastWriteTime(subFile, weeks[fileName]); }
{ File.SetLastWriteTime(subFile, value); }
catch (Exception) { }
}
}
@ -292,6 +305,7 @@ public class FileRead : Shared.FileRead, IFileRead
}
_Log.Info(topDirectory);
}
#nullable disable
}
private void ZipFilesByDate()