diff --git a/src/MimeTypesMap/MimeTypesMap.cs b/src/MimeTypesMap/MimeTypesMap.cs index 7c6c77f..2bc8b3d 100644 --- a/src/MimeTypesMap/MimeTypesMap.cs +++ b/src/MimeTypesMap/MimeTypesMap.cs @@ -1008,6 +1008,16 @@ public static string GetExtension(string mime) return _defaultExtension; } + public static IEnumerable GetExtensions(string mime) + { + var ext = _mimeTypeMap.Value.Where(x => x.Value.Contains(mime)).Select(x => x.Key); + if (ext != null) + { + return ext; + } + return new List { _defaultExtension }; + } + public static string GetMimeType(string fileName) { string ext = fileName; diff --git a/src/MimeTypesMap/MimeTypesMap.tt b/src/MimeTypesMap/MimeTypesMap.tt index b08d2ac..7c5724c 100644 --- a/src/MimeTypesMap/MimeTypesMap.tt +++ b/src/MimeTypesMap/MimeTypesMap.tt @@ -38,6 +38,16 @@ namespace HeyRed.Mime return _defaultExtension; } + public static IEnumerable GetExtensions(string mime) + { + var ext = _mimeTypeMap.Value.Where(x => x.Value.Contains(mime)).Select(x => x.Key); + if (ext != null) + { + return ext; + } + return new List { _defaultExtension }; + } + public static string GetMimeType(string fileName) { string ext = fileName; diff --git a/test/MimeTypesMapTests/SimpleTests.cs b/test/MimeTypesMapTests/SimpleTests.cs index b78e116..558aecd 100644 --- a/test/MimeTypesMapTests/SimpleTests.cs +++ b/test/MimeTypesMapTests/SimpleTests.cs @@ -1,4 +1,5 @@ -using HeyRed.Mime; +using System.Collections.Generic; +using HeyRed.Mime; using Xunit; namespace MimeTypesMapTests @@ -32,6 +33,19 @@ public void GetExtension() var ext = MimeTypesMap.GetExtension("image/jpeg"); Assert.Equal("jpeg", ext); } + + [Fact] + public void GetExtensions() + { + var expected = new List + { + "ai", + "eps", + "ps" + }; + var exts = MimeTypesMap.GetExtensions("application/postscript"); + Assert.Equal(expected, exts); + } [Fact] public void AddOrUpdate()