diff --git a/src/SharpCompress/Archives/ArchiveFactory.cs b/src/SharpCompress/Archives/ArchiveFactory.cs index b697c17c..f9e304ad 100644 --- a/src/SharpCompress/Archives/ArchiveFactory.cs +++ b/src/SharpCompress/Archives/ArchiveFactory.cs @@ -76,9 +76,7 @@ namespace SharpCompress.Archives } var extensions = Factories - .SelectMany(item => item.GetSupportedExtensions()) - .Select(item => item.Key) - .Distinct() + .Select(item => item.Name) .Aggregate((a,b) => a + ", " + b ); throw new InvalidOperationException($"Cannot determine compressed stream type. Supported Archive Formats: {extensions}"); diff --git a/src/SharpCompress/Archives/GZip/GZipArchiveFactory.cs b/src/SharpCompress/Archives/GZip/GZipArchiveFactory.cs index d3f52ce0..d4faa639 100644 --- a/src/SharpCompress/Archives/GZip/GZipArchiveFactory.cs +++ b/src/SharpCompress/Archives/GZip/GZipArchiveFactory.cs @@ -10,9 +10,12 @@ namespace SharpCompress.Archives.GZip public class GZipArchiveFactory : IArchiveFactory { /// - public IEnumerable> GetSupportedExtensions() + public string Name => "GZip"; + + /// + public IEnumerable GetSupportedExtensions() { - yield return new KeyValuePair("GZip", "gz"); + yield return "gz"; } /// diff --git a/src/SharpCompress/Archives/IArchiveFactory.cs b/src/SharpCompress/Archives/IArchiveFactory.cs index a9d55e32..ea3f5bb7 100644 --- a/src/SharpCompress/Archives/IArchiveFactory.cs +++ b/src/SharpCompress/Archives/IArchiveFactory.cs @@ -22,11 +22,16 @@ namespace SharpCompress.Archives /// public interface IArchiveFactory { + /// + /// Gets the archive Type name + /// + string Name { get; } + /// /// returns the extensions typically used by this archive type. /// /// - IEnumerable> GetSupportedExtensions(); + IEnumerable GetSupportedExtensions(); /// /// Returns true if the stream represents an archive of the format defined by this type. diff --git a/src/SharpCompress/Archives/Rar/RarArchiveFactory.cs b/src/SharpCompress/Archives/Rar/RarArchiveFactory.cs index b374a64b..bc13bd94 100644 --- a/src/SharpCompress/Archives/Rar/RarArchiveFactory.cs +++ b/src/SharpCompress/Archives/Rar/RarArchiveFactory.cs @@ -10,10 +10,13 @@ namespace SharpCompress.Archives.Rar public class RarArchiveFactory : IArchiveFactory { /// - public IEnumerable> GetSupportedExtensions() + public string Name => "Rar"; + + /// + public IEnumerable GetSupportedExtensions() { - yield return new KeyValuePair("Rar", "rar"); - yield return new KeyValuePair("Rar", "cbr"); + yield return "rar"; + yield return "cbr"; } /// diff --git a/src/SharpCompress/Archives/SevenZip/SevenZipArchiveFactory.cs b/src/SharpCompress/Archives/SevenZip/SevenZipArchiveFactory.cs index 11fa673f..923c7810 100644 --- a/src/SharpCompress/Archives/SevenZip/SevenZipArchiveFactory.cs +++ b/src/SharpCompress/Archives/SevenZip/SevenZipArchiveFactory.cs @@ -10,9 +10,12 @@ namespace SharpCompress.Archives.SevenZip public class SevenZipArchiveFactory : IArchiveFactory { /// - public IEnumerable> GetSupportedExtensions() + public string Name => "7Zip"; + + /// + public IEnumerable GetSupportedExtensions() { - yield return new KeyValuePair("7Zip", "7z"); + yield return "7z"; } /// diff --git a/src/SharpCompress/Archives/Tar/TarArchiveFactory.cs b/src/SharpCompress/Archives/Tar/TarArchiveFactory.cs index 1c7fc599..8a67a5f3 100644 --- a/src/SharpCompress/Archives/Tar/TarArchiveFactory.cs +++ b/src/SharpCompress/Archives/Tar/TarArchiveFactory.cs @@ -10,9 +10,12 @@ namespace SharpCompress.Archives.Tar public class TarArchiveFactory : IArchiveFactory { /// - public IEnumerable> GetSupportedExtensions() + public string Name => "Tar"; + + /// + public IEnumerable GetSupportedExtensions() { - yield return new KeyValuePair("Tar", "tar"); + yield return "tar"; } /// diff --git a/src/SharpCompress/Archives/Zip/ZipArchiveFactory.cs b/src/SharpCompress/Archives/Zip/ZipArchiveFactory.cs index d91c6a6a..eade3e5e 100644 --- a/src/SharpCompress/Archives/Zip/ZipArchiveFactory.cs +++ b/src/SharpCompress/Archives/Zip/ZipArchiveFactory.cs @@ -10,11 +10,14 @@ namespace SharpCompress.Archives.Zip public class ZipArchiveFactory : IArchiveFactory { /// - public IEnumerable> GetSupportedExtensions() + public string Name => "Zip"; + + /// + public IEnumerable GetSupportedExtensions() { - yield return new KeyValuePair("Zip", "zip"); - yield return new KeyValuePair("Zip", "zipx"); - yield return new KeyValuePair("Zip", "cbz"); + yield return "zip"; + yield return "zipx"; + yield return "cbz"; } ///