Snippet: Mime types and file extensions

If you have a mime type and you want to find the default extension for it, you can get this from the Extension value in the following registry key:

HKEY_CLASSES_ROOT\MIME\Database\Content Type\<mime type>

    public static string GetDefaultExtension(string mimeType)
    {
      string result;
      RegistryKey key;
      object value;

      key = Registry.ClassesRoot.OpenSubKey(@"MIME\Database\Content Type\" + mimeType, false);
      value = key != null ? key.GetValue("Extension", null) : null;
      result = value != null ? value.ToString() : string.Empty;

      return result;
    }

One the other hand, if you have a file extension and you want to know what that mime type is, you can get that via the Content Type value of this key:

HKEY_CLASSES ROOT\<extension>

    public static string GetMimeTypeFromExtension(string extension)
    {
      string result;
      RegistryKey key;
      object value;

      if (!extension.StartsWith("."))
        extension = "." + extension;

      key = Registry.ClassesRoot.OpenSubKey(extension, false);
      value = key != null ? key.GetValue("Content Type", null) : null;
      result = value != null ? value.ToString() : string.Empty;

      return result;
    }

About The Author

Gravatar

The founder of Cyotek, Richard enjoys creating new blog content for the site. Much more though, he likes to develop programs, and can often found writing reams of code. A long term gamer, he has aspirations in one day creating an epic video game. Until that time, he is mostly content with adding new bugs to WebCopy and the other Cyotek products.

Leave a Comment

While we appreciate comments from our users, please follow our posting guidelines. Have you tried the Cyotek Forums for support from Cyotek and the community?

Styling with Markdown is supported