GetToDoCollection

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

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