MimeTypeNode FindMimeTypeForFile(string fileName) { IFilePathRegistryService filePathRegistryService = CompositionManager.GetExportedValue <IFilePathRegistryService> (); try { IContentType contentType = filePathRegistryService.GetContentTypeForPath(fileName); if (contentType != PlatformCatalog.Instance.ContentTypeRegistryService.UnknownContentType) { string mimeType = PlatformCatalog.Instance.MimeToContentTypeRegistryService.GetMimeType(contentType); if (mimeType != null) { MimeTypeNode mt = FindMimeType(mimeType); if (mt != null) { return(mt); } } } } catch (Exception ex) { LoggingService.LogError("IFilePathRegistryService query failed", ex); } foreach (MimeTypeNode mt in mimeTypeNodes) { if (mt.SupportsFile(fileName)) { return(mt); } } return(null); }