diff --git a/CompactGUI.Core/Compactor.cs b/CompactGUI.Core/Compactor.cs index 6ad36d1..ddc44c3 100644 --- a/CompactGUI.Core/Compactor.cs +++ b/CompactGUI.Core/Compactor.cs @@ -16,7 +16,7 @@ public sealed class Compactor : ICompressor, IDisposable private const int HResultCompressionNotBeneficial = unchecked((int)0x80070158); private readonly string workingDirectory; - private readonly HashSet excludedFileExtensions; + private readonly HashSet excludedFilesAndExtensions; private readonly HashSet resumeExcludedFiles; private readonly WOFCompressionAlgorithm wofCompressionAlgorithm; private readonly CompressionProgressBaseline progressBaseline; @@ -68,7 +68,7 @@ public Compactor( CompressionProgressBaseline? progressBaseline = null) { workingDirectory = folderPath; - excludedFileExtensions = new HashSet(excludedFileTypes); + excludedFilesAndExtensions = new HashSet(excludedFileTypes, StringComparer.OrdinalIgnoreCase); this.resumeExcludedFiles = resumeExcludedFiles is null ? new HashSet(StringComparer.OrdinalIgnoreCase) : new HashSet(resumeExcludedFiles, StringComparer.OrdinalIgnoreCase); @@ -315,7 +315,8 @@ public async Task> BuildWorkingFilesList(IReadOnlyColle && !resumeExcludedFiles.Contains(fl.FileName) && !notBeneficialCache.ShouldSkip(fl.FileName, wofCompressionAlgorithm) && fl.UncompressedSize > clusterSize - && ((fl.FileInfo != null && !excludedFileExtensions.Contains(fl.FileInfo.Extension)) || excludedFileExtensions.Contains(fl.FileName)) + && (fl.FileInfo == null || !excludedFilesAndExtensions.Contains(fl.FileInfo.Extension)) + && !excludedFilesAndExtensions.Contains(fl.FileName) ) .Select(fl => new FileDetails(fl.FileName, fl.UncompressedSize, fl.CompressionMode)) .ToList();