C# Get file extension by content type

[2019] .NET Core / Standard compatible portable way

While Bradley’s answer continues to be perfect on regular old Windows machines running .NET Framework, Registry is Windows-specific and will fail when porting the app to a non-Windows environment.

Fortunately there is a very small NuGet library that essentially contains a hardcoded map of the official MIME types and corresponding extensions without any external dependencies here: https://github.com/samuelneff/MimeTypeMap. It is available on NuGet as MediaTypeMap. After installing the package calling it is as simple as:

MimeTypeMap.GetExtension("audio/wav")

To put it into your example you can simply:

private static string GetExtension(string contentType)
{
    return MimeTypes.MimeTypeMap.GetExtension(contentType);
}

Leave a Comment

tech