GetMIMEType simple and reusable
Page 1 of 1 • Share •
GetMIMEType simple and reusable
public static string GetMIMEType(FileInfo f)
{
RegistryPermission regPermission = new RegistryPermission(RegistryPermissionAccess.Read, "\\HKEY_CLASSES_ROOT");
RegistryKey classRoot = Registry.ClassesRoot;
//FileInfo f = new FileInfo(filePath);
string extension = f.Extension.ToLower();
RegistryKey typeKey = classRoot.OpenSubKey(@"MIME\Database\Content Type");
string mimeType = string.Empty;
foreach(string keyName in typeKey.GetSubKeyNames())
{
RegistryKey curKey = classRoot.OpenSubKey(@"MIME\Database\Content Type\" + keyName);
if (curKey.GetValue("Extension") != null)
{
string value = curKey.GetValue("Extension").ToString();
if (value.ToLower() == extension)
{
mimeType = keyName;
break;
}
}
}
if (mimeType == string.Empty)
{
switch (extension.ToLower())
{
case "avi":
mimeType = "video/avi";
break;
case "bmp":
mimeType = "image/bmp";
break;
case "doc":
mimeType = "application/msword";
break;
case "dot":
mimeType = "application/msword";
break;
case "eps":
mimeType = "application/postscript";
break;
case "gif":
mimeType = "image/gif";
break;
case "htm":
mimeType = "text/html";
break;
case "html":
mimeType = "text/html";
break;
case "htmls":
mimeType = "text/html";
break;
case "ico":
mimeType = "image/x-icon";
break;
case "jpe":
mimeType = "image/jpeg";
break;
case "jpeg":
mimeType = "image/jpeg";
break;
case "jpg":
mimeType = "image/jpeg";
break;
case "mp3":
mimeType = "audio/mp3";
break;
case "mpa":
mimeType = "audio/mpeg";
break;
case "mpe":
mimeType = "video/mpeg";
break;
case"mpeg":
mimeType = "video/mpeg";
break;
case "mpg":
mimeType = "video/mpeg";
break;
case "mpga":
mimeType = "audio/mpeg";
break;
case "pdf":
mimeType = "application/pdf";
break;
case "pps":
mimeType = "application/mspowerpoint";
break;
case "ppt":
mimeType = "application/mspowerpoint";
break;
case "ps":
mimeType = "application/postscript";
break;
case "rt":
mimeType = "text/richtext";
break;
case "rtf":
mimeType = "application/rtf";
break;
case "scm":
mimeType = "video/x-scm";
break;
case "shtml":
mimeType = "text/html";
break;
case "swf":
mimeType = "application/x-shockwave-flash";
break;
case "txt":
mimeType = "text/plain";
break;
case "tif":
mimeType = "image/tiff";
break;
case "tiff":
mimeType = "image/tiff";
break;
case "vrml":
mimeType = "model/vrml";
break;
case "vsd":
mimeType = "application/x-visio";
break;
case "vst":
mimeType = "application/x-visio";
break;
case "vsw":
mimeType = "application/x-visio";
break;
case "wml":
mimeType = "text/vnd.wap.wml";
break;
case "word":
mimeType = "application/msword";
break;
case "wri":
mimeType = "application/mswrite";
break;
case "wrl":
mimeType = "x-world/x-vrml";
break;
case "wrz":
mimeType = "model/vrml";
break;
case "xla":
mimeType = "application/excel";
break;
case "xls":
mimeType = "application/excel";
break;
default:
mimeType = "application/x-binary";
break;
}
}
return mimeType;
}

{
RegistryPermission regPermission = new RegistryPermission(RegistryPermissionAccess.Read, "\\HKEY_CLASSES_ROOT");
RegistryKey classRoot = Registry.ClassesRoot;
//FileInfo f = new FileInfo(filePath);
string extension = f.Extension.ToLower();
RegistryKey typeKey = classRoot.OpenSubKey(@"MIME\Database\Content Type");
string mimeType = string.Empty;
foreach(string keyName in typeKey.GetSubKeyNames())
{
RegistryKey curKey = classRoot.OpenSubKey(@"MIME\Database\Content Type\" + keyName);
if (curKey.GetValue("Extension") != null)
{
string value = curKey.GetValue("Extension").ToString();
if (value.ToLower() == extension)
{
mimeType = keyName;
break;
}
}
}
if (mimeType == string.Empty)
{
switch (extension.ToLower())
{
case "avi":
mimeType = "video/avi";
break;
case "bmp":
mimeType = "image/bmp";
break;
case "doc":
mimeType = "application/msword";
break;
case "dot":
mimeType = "application/msword";
break;
case "eps":
mimeType = "application/postscript";
break;
case "gif":
mimeType = "image/gif";
break;
case "htm":
mimeType = "text/html";
break;
case "html":
mimeType = "text/html";
break;
case "htmls":
mimeType = "text/html";
break;
case "ico":
mimeType = "image/x-icon";
break;
case "jpe":
mimeType = "image/jpeg";
break;
case "jpeg":
mimeType = "image/jpeg";
break;
case "jpg":
mimeType = "image/jpeg";
break;
case "mp3":
mimeType = "audio/mp3";
break;
case "mpa":
mimeType = "audio/mpeg";
break;
case "mpe":
mimeType = "video/mpeg";
break;
case"mpeg":
mimeType = "video/mpeg";
break;
case "mpg":
mimeType = "video/mpeg";
break;
case "mpga":
mimeType = "audio/mpeg";
break;
case "pdf":
mimeType = "application/pdf";
break;
case "pps":
mimeType = "application/mspowerpoint";
break;
case "ppt":
mimeType = "application/mspowerpoint";
break;
case "ps":
mimeType = "application/postscript";
break;
case "rt":
mimeType = "text/richtext";
break;
case "rtf":
mimeType = "application/rtf";
break;
case "scm":
mimeType = "video/x-scm";
break;
case "shtml":
mimeType = "text/html";
break;
case "swf":
mimeType = "application/x-shockwave-flash";
break;
case "txt":
mimeType = "text/plain";
break;
case "tif":
mimeType = "image/tiff";
break;
case "tiff":
mimeType = "image/tiff";
break;
case "vrml":
mimeType = "model/vrml";
break;
case "vsd":
mimeType = "application/x-visio";
break;
case "vst":
mimeType = "application/x-visio";
break;
case "vsw":
mimeType = "application/x-visio";
break;
case "wml":
mimeType = "text/vnd.wap.wml";
break;
case "word":
mimeType = "application/msword";
break;
case "wri":
mimeType = "application/mswrite";
break;
case "wrl":
mimeType = "x-world/x-vrml";
break;
case "wrz":
mimeType = "model/vrml";
break;
case "xla":
mimeType = "application/excel";
break;
case "xls":
mimeType = "application/excel";
break;
default:
mimeType = "application/x-binary";
break;
}
}
return mimeType;
}
justchirag- Admin
- Posts: 4
Join date: 2007-10-19
Age: 25
Location: India

Permissions of this forum:
You cannot reply to topics in this forum





