diff --git a/SabreTools.Helper/Dats/DatFile.cs b/SabreTools.Helper/Dats/DatFile.cs index ff7e9de1..6f6d348e 100644 --- a/SabreTools.Helper/Dats/DatFile.cs +++ b/SabreTools.Helper/Dats/DatFile.cs @@ -825,9 +825,6 @@ namespace SabreTools.Helper.Dats // Make sure there are no folders in inputs List newInputFileNames = FileTools.GetOnlyFilesFromInputs(inputPaths, maxDegreeOfParallelism, logger, appendparent: true); - // Sort the list first - newInputFileNames = Style.OrderByAlphaNumeric(newInputFileNames, s => s).ToList(); - // If we're in inverse cascade, reverse the list if ((diff & DiffMode.ReverseCascade) != 0) { diff --git a/SabreTools.Helper/Tools/FileTools.cs b/SabreTools.Helper/Tools/FileTools.cs index a025098d..b954fe3e 100644 --- a/SabreTools.Helper/Tools/FileTools.cs +++ b/SabreTools.Helper/Tools/FileTools.cs @@ -371,51 +371,52 @@ namespace SabreTools.Helper.Tools public static List GetOnlyFilesFromInputs(List inputs, int maxDegreeOfParallelism, Logger logger, bool appendparent = false) { List outputs = new List(); - Parallel.ForEach(inputs, - new ParallelOptions { MaxDegreeOfParallelism = maxDegreeOfParallelism, }, - input => + foreach (string input in inputs) + { + if (Directory.Exists(input)) { - if (Directory.Exists(input)) - { - List files = FileTools.RetrieveFiles(input, new List()); - foreach (string file in files) - { - try - { - lock (outputs) - { - outputs.Add(Path.GetFullPath(file) + (appendparent ? "¬" + Path.GetFullPath(input) : "")); - } - } - catch (PathTooLongException) - { - logger.Warning("The path for " + file + " was too long"); - } - catch (Exception ex) - { - logger.Error(ex.ToString()); - } - } - } - else if (File.Exists(input)) + List files = FileTools.RetrieveFiles(input, new List()); + + // Make sure the files in the directory are ordered correctly + files = Style.OrderByAlphaNumeric(files, s => s).ToList(); + foreach (string file in files) { try { lock (outputs) { - outputs.Add(Path.GetFullPath(input) + (appendparent ? "¬" + Path.GetFullPath(input) : "")); + outputs.Add(Path.GetFullPath(file) + (appendparent ? "¬" + Path.GetFullPath(input) : "")); } } catch (PathTooLongException) { - logger.Warning("The path for " + input + " was too long"); + logger.Warning("The path for " + file + " was too long"); } catch (Exception ex) { logger.Error(ex.ToString()); } } - }); + } + else if (File.Exists(input)) + { + try + { + lock (outputs) + { + outputs.Add(Path.GetFullPath(input) + (appendparent ? "¬" + Path.GetFullPath(input) : "")); + } + } + catch (PathTooLongException) + { + logger.Warning("The path for " + input + " was too long"); + } + catch (Exception ex) + { + logger.Error(ex.ToString()); + } + } + } return outputs; }