GetToDoCollection
This commit is contained in:
@ -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))
|
||||
|
Reference in New Issue
Block a user