GetToDoCollection

This commit is contained in:
Mike Phares 2023-01-17 20:53:37 -07:00
parent 9dd218a5f2
commit 375447ce97
4 changed files with 28 additions and 17 deletions

View File

@ -1,12 +1,12 @@
{ {
"CompareRootDirectory": "D:/7) Question/- - - Images - 2023-01-12/fa60aa45ebb55fe3ee0ce4da8a64e40611e7d5ce", "CompareRootDirectory": "D:/7) Question/- - - Images - 2023-01-12/d02c8791fa0b130c0bce2d39ee684e50f7ee7a97-Not-Copy-Copy",
"Logging": { "Logging": {
"LogLevel": { "LogLevel": {
"Log4netProvider": "Debug" "Log4netProvider": "Debug"
} }
}, },
"MaxDegreeOfParallelism": 6, "MaxDegreeOfParallelism": 6,
"RecycleOption": true, "RecycleOption": false,
"SearchPattern": "*.*", "SearchPattern": "*.*",
"Serilog": { "Serilog": {
"MinimumLevel": "Debug" "MinimumLevel": "Debug"
@ -18,7 +18,9 @@
"xxxRootDirectory": "D:/1) Images A/Images-45f4401", "xxxRootDirectory": "D:/1) Images A/Images-45f4401",
"xxxxRootDirectory": "E:/3) Videos A/Device Videos 2_0_0_3 - Current", "xxxxRootDirectory": "E:/3) Videos A/Device Videos 2_0_0_3 - Current",
"xxxxxRootDirectory": "E:/4) Videos B/Device Videos 2_0_0_3 - Current - Ignore", "xxxxxRootDirectory": "E:/4) Videos B/Device Videos 2_0_0_3 - Current - Ignore",
"RootDirectory": "C:/1) Images A/Images-45f4401", "xxxxxxRootDirectory": "C:/1) Images A/Images-45f4401",
"xxxxxxxRootDirectory": "C:/2) Images B/Not-Copy-Copy-45f4401",
"xxxxxxxxRootDirectory": "D:/7) Question/- - - Images - 2023-01-12/fa60aa45ebb55fe3ee0ce4da8a64e40611e7d5ce",
"VerifyToSeason": [] "VerifyToSeason": []
} }
} }

View File

@ -92,7 +92,7 @@ public class Rename
} }
} }
private List<(FileHolder, string)> GetRenameCollection(ProgressBar progressBar, string[] files) private List<(FileHolder, string)> GetToDoCollection(ProgressBar progressBar, string[] files)
{ {
List<(FileHolder, string)> results = new(); List<(FileHolder, string)> results = new();
int? id; int? id;
@ -271,22 +271,30 @@ public class Rename
} }
} }
private void CopyInstead(List<(FileHolder, string)> renameCollection) private void CopyInstead(List<(FileHolder, string)> toDoCollection)
{ {
string copyTo;
string? directory; string? directory;
List<string> distinctDirectories = new(); List<string> distinctDirectories = new();
foreach ((FileHolder fileHolder, string to) in renameCollection) List<(FileHolder, string)> copyCollection = new();
foreach ((FileHolder fileHolder, string to) in toDoCollection)
{ {
directory = Path.GetDirectoryName($"{_AppSettings.CopyTo}{to[1..]}"); copyTo = $"{_AppSettings.CopyTo}{to[1..]}";
directory = Path.GetDirectoryName(copyTo);
if (directory is null) if (directory is null)
continue; continue;
copyCollection.Add(new(fileHolder, copyTo));
if (distinctDirectories.Contains(directory)) if (distinctDirectories.Contains(directory))
continue; continue;
distinctDirectories.Add(directory); distinctDirectories.Add(directory);
} }
CreateDirectories(distinctDirectories); CreateDirectories(distinctDirectories);
foreach ((FileHolder fileHolder, string to) in renameCollection) foreach ((FileHolder fileHolder, string to) in copyCollection)
File.Copy(fileHolder.FullName, $"{_AppSettings.CopyTo}{to[1..]}"); {
if (File.Exists(to))
continue;
File.Copy(fileHolder.FullName, to);
}
} }
private List<string> RenameFilesInDirectories(ProgressBarOptions options, MatchNginx[] matchNginxCollection) private List<string> RenameFilesInDirectories(ProgressBarOptions options, MatchNginx[] matchNginxCollection)
@ -297,7 +305,7 @@ public class Rename
int distinctCount; int distinctCount;
ProgressBar progressBar; ProgressBar progressBar;
List<string> distinctCollection = new(); List<string> distinctCollection = new();
List<(FileHolder, string)> renameCollection; List<(FileHolder, string)> toDoCollection;
List<string> allFiles = GetAllFiles(matchNginxCollection); List<string> allFiles = GetAllFiles(matchNginxCollection);
for (int i = 1; i < 3; i++) for (int i = 1; i < 3; i++)
{ {
@ -307,21 +315,21 @@ public class Rename
if (!files.Any()) if (!files.Any())
continue; continue;
distinctCollection.Clear(); distinctCollection.Clear();
renameCollection = GetRenameCollection(progressBar, files); toDoCollection = GetToDoCollection(progressBar, files);
foreach ((FileHolder fileHolder, string to) in renameCollection) foreach ((FileHolder fileHolder, string to) in toDoCollection)
{ {
if (distinctCollection.Contains(to)) if (distinctCollection.Contains(to))
continue; continue;
distinctCollection.Add(to); distinctCollection.Add(to);
} }
distinctCount = distinctCollection.Count; distinctCount = distinctCollection.Count;
if (renameCollection.Count != distinctCount) if (toDoCollection.Count != distinctCount)
continue; continue;
if (!string.IsNullOrEmpty(_AppSettings.CopyTo)) if (!string.IsNullOrEmpty(_AppSettings.CopyTo))
CopyInstead(renameCollection); CopyInstead(toDoCollection);
else else
{ {
foreach ((FileHolder fileHolder, string to) in renameCollection) foreach ((FileHolder fileHolder, string to) in toDoCollection)
{ {
results.Add(fileHolder.NameWithoutExtension); results.Add(fileHolder.NameWithoutExtension);
if (File.Exists(to)) if (File.Exists(to))

View File

@ -1,6 +1,6 @@
{ {
"ComparePathsFile": "C:/Users/mikep/AppData/Local/PharesApps/Drag-Drop-Explorer/2023_03/638095753937985087.json", "ComparePathsFile": "C:/Users/mikep/AppData/Local/PharesApps/Drag-Drop-Explorer/2023_03/638095825580115652.json",
"CopyTo": "C", "CopyTo": "",
"Logging": { "Logging": {
"LogLevel": { "LogLevel": {
"Log4netProvider": "Debug" "Log4netProvider": "Debug"

View File

@ -1,6 +1,7 @@
{ {
"ComparePathsFile": "", "ComparePathsFile": "",
"Company": "Mike Phares", "Company": "Mike Phares",
"CopyTo": "",
"Linux": {}, "Linux": {},
"Logging": { "Logging": {
"LogLevel": { "LogLevel": {