using System; using System.Collections.Generic; namespace Robobunny { public static class MimeType { #region MIME type list private static Dictionary MimeType = new Dictionary() { { "ez", "application/andrew-inset" }, { "anx", "application/annodex" }, { "atom", "application/atom+xml" }, { "atomcat", "application/atomcat+xml" }, { "atomsrv", "application/atomserv+xml" }, { "lin", "application/bbolin" }, { "cap", "application/cap" }, { "pcap", "application/cap" }, { "cu", "application/cu-seeme" }, { "davmount", "application/davmount+xml" }, { "tsp", "application/dsptype" }, { "es", "application/ecmascript" }, { "spl", "application/futuresplash" }, { "hta", "application/hta" }, { "jar", "application/java-archive" }, { "ser", "application/java-serialized-object" }, { "class", "application/java-vm" }, { "js", "application/javascript" }, { "m3g", "application/m3g" }, { "hqx", "application/mac-binhex40" }, { "cpt", "application/mac-compactpro" }, { "nb", "application/mathematica" }, { "nbp", "application/mathematica" }, { "mdb", "application/msaccess" }, { "doc", "application/msword" }, { "dot", "application/msword" }, { "mxf", "application/mxf" }, { "bin", "application/octet-stream" }, { "oda", "application/oda" }, { "ogx", "application/ogg" }, { "pdf", "application/pdf" }, { "key", "application/pgp-keys" }, { "pgp", "application/pgp-signature" }, { "prf", "application/pics-rules" }, { "ps", "application/postscript" }, { "ai", "application/postscript" }, { "eps", "application/postscript" }, { "epsi", "application/postscript" }, { "epsf", "application/postscript" }, { "eps2", "application/postscript" }, { "eps3", "application/postscript" }, { "rar", "application/rar" }, { "rdf", "application/rdf+xml" }, { "rss", "application/rss+xml" }, { "rtf", "application/rtf" }, { "smi", "application/smil" }, { "smil", "application/smil" }, { "xhtml", "application/xhtml+xml" }, { "xht", "application/xhtml+xml" }, { "xml", "application/xml" }, { "xsl", "application/xml" }, { "xsd", "application/xml" }, { "xspf", "application/xspf+xml" }, { "zip", "application/zip" }, { "apk", "application/vnd.android.package-archive" }, { "cdy", "application/vnd.cinderella" }, { "kml", "application/vnd.google-earth.kml+xml" }, { "kmz", "application/vnd.google-earth.kmz" }, { "xul", "application/vnd.mozilla.xul+xml" }, { "xls", "application/vnd.ms-excel" }, { "xlb", "application/vnd.ms-excel" }, { "xlt", "application/vnd.ms-excel" }, { "cat", "application/vnd.ms-pki.seccat" }, { "stl", "application/vnd.ms-pki.stl" }, { "ppt", "application/vnd.ms-powerpoint" }, { "pps", "application/vnd.ms-powerpoint" }, { "odc", "application/vnd.oasis.opendocument.chart" }, { "odb", "application/vnd.oasis.opendocument.database" }, { "odf", "application/vnd.oasis.opendocument.formula" }, { "odg", "application/vnd.oasis.opendocument.graphics" }, { "otg", "application/vnd.oasis.opendocument.graphics-template" }, { "odi", "application/vnd.oasis.opendocument.image" }, { "odp", "application/vnd.oasis.opendocument.presentation" }, { "otp", "application/vnd.oasis.opendocument.presentation-template" }, { "ods", "application/vnd.oasis.opendocument.spreadsheet" }, { "ots", "application/vnd.oasis.opendocument.spreadsheet-template" }, { "odt", "application/vnd.oasis.opendocument.text" }, { "odm", "application/vnd.oasis.opendocument.text-master" }, { "ott", "application/vnd.oasis.opendocument.text-template" }, { "oth", "application/vnd.oasis.opendocument.text-web" }, { "xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" }, { "xltx", "application/vnd.openxmlformats-officedocument.spreadsheetml.template" }, { "pptx", "application/vnd.openxmlformats-officedocument.presentationml.presentation" }, { "ppsx", "application/vnd.openxmlformats-officedocument.presentationml.slideshow" }, { "potx", "application/vnd.openxmlformats-officedocument.presentationml.template" }, { "docx", "application/vnd.openxmlformats-officedocument.wordprocessingml.document" }, { "dotx", "application/vnd.openxmlformats-officedocument.wordprocessingml.template" }, { "cod", "application/vnd.rim.cod" }, { "mmf", "application/vnd.smaf" }, { "sdc", "application/vnd.stardivision.calc" }, { "sds", "application/vnd.stardivision.chart" }, { "sda", "application/vnd.stardivision.draw" }, { "sdd", "application/vnd.stardivision.impress" }, { "sdf", "application/vnd.stardivision.math" }, { "sdw", "application/vnd.stardivision.writer" }, { "sgl", "application/vnd.stardivision.writer-global" }, { "sxc", "application/vnd.sun.xml.calc" }, { "stc", "application/vnd.sun.xml.calc.template" }, { "sxd", "application/vnd.sun.xml.draw" }, { "std", "application/vnd.sun.xml.draw.template" }, { "sxi", "application/vnd.sun.xml.impress" }, { "sti", "application/vnd.sun.xml.impress.template" }, { "sxm", "application/vnd.sun.xml.math" }, { "sxw", "application/vnd.sun.xml.writer" }, { "sxg", "application/vnd.sun.xml.writer.global" }, { "stw", "application/vnd.sun.xml.writer.template" }, { "sis", "application/vnd.symbian.install" }, { "vsd", "application/vnd.visio" }, { "wbxml", "application/vnd.wap.wbxml" }, { "wmlc", "application/vnd.wap.wmlc" }, { "wmlsc", "application/vnd.wap.wmlscriptc" }, { "wpd", "application/vnd.wordperfect" }, { "wp5", "application/vnd.wordperfect5.1" }, { "wk", "application/x-123" }, { "7z", "application/x-7z-compressed" }, { "abw", "application/x-abiword" }, { "dmg", "application/x-apple-diskimage" }, { "bcpio", "application/x-bcpio" }, { "torrent", "application/x-bittorrent" }, { "cab", "application/x-cab" }, { "cbr", "application/x-cbr" }, { "cbz", "application/x-cbz" }, { "cdf", "application/x-cdf" }, { "cda", "application/x-cdf" }, { "vcd", "application/x-cdlink" }, { "pgn", "application/x-chess-pgn" }, { "cpio", "application/x-cpio" }, { "csh", "application/x-csh" }, { "deb", "application/x-debian-package" }, { "udeb", "application/x-debian-package" }, { "dcr", "application/x-director" }, { "dir", "application/x-director" }, { "dxr", "application/x-director" }, { "dms", "application/x-dms" }, { "wad", "application/x-doom" }, { "dvi", "application/x-dvi" }, { "rhtml", "application/x-httpd-eruby" }, { "pfa", "application/x-font" }, { "pfb", "application/x-font" }, { "gsf", "application/x-font" }, { "pcf", "application/x-font" }, { "pcf.Z", "application/x-font" }, { "mm", "application/x-freemind" }, { "gnumeric", "application/x-gnumeric" }, { "sgf", "application/x-go-sgf" }, { "gcf", "application/x-graphing-calculator" }, { "gtar", "application/x-gtar" }, { "tgz", "application/x-gtar" }, { "taz", "application/x-gtar" }, { "hdf", "application/x-hdf" }, { "phtml", "application/x-httpd-php" }, { "pht", "application/x-httpd-php" }, { "php", "application/x-httpd-php" }, { "phps", "application/x-httpd-php-source" }, { "php3", "application/x-httpd-php3" }, { "php3p", "application/x-httpd-php3-preprocessed" }, { "php4", "application/x-httpd-php4" }, { "php5", "application/x-httpd-php5" }, { "ica", "application/x-ica" }, { "info", "application/x-info" }, { "ins", "application/x-internet-signup" }, { "isp", "application/x-internet-signup" }, { "iii", "application/x-iphone" }, { "iso", "application/x-iso9660-image" }, { "jam", "application/x-jam" }, { "jnlp", "application/x-java-jnlp-file" }, { "jmz", "application/x-jmol" }, { "chrt", "application/x-kchart" }, { "kil", "application/x-killustrator" }, { "skp", "application/x-koan" }, { "skd", "application/x-koan" }, { "skt", "application/x-koan" }, { "skm", "application/x-koan" }, { "kpr", "application/x-kpresenter" }, { "kpt", "application/x-kpresenter" }, { "ksp", "application/x-kspread" }, { "kwd", "application/x-kword" }, { "kwt", "application/x-kword" }, { "latex", "application/x-latex" }, { "lha", "application/x-lha" }, { "lyx", "application/x-lyx" }, { "lzh", "application/x-lzh" }, { "lzx", "application/x-lzx" }, { "frm", "application/x-maker" }, { "maker", "application/x-maker" }, { "frame", "application/x-maker" }, { "fm", "application/x-maker" }, { "fb", "application/x-maker" }, { "book", "application/x-maker" }, { "fbdoc", "application/x-maker" }, { "mif", "application/x-mif" }, { "wmd", "application/x-ms-wmd" }, { "wmz", "application/x-ms-wmz" }, { "com", "application/x-msdos-program" }, { "exe", "application/x-msdos-program" }, { "bat", "application/x-msdos-program" }, { "dll", "application/x-msdos-program" }, { "msi", "application/x-msi" }, { "nc", "application/x-netcdf" }, { "pac", "application/x-ns-proxy-autoconfig" }, { "dat", "application/x-ns-proxy-autoconfig" }, { "nwc", "application/x-nwc" }, { "o", "application/x-object" }, { "oza", "application/x-oz-application" }, { "p7r", "application/x-pkcs7-certreqresp" }, { "crl", "application/x-pkcs7-crl" }, { "pyc", "application/x-python-code" }, { "pyo", "application/x-python-code" }, { "qgs", "application/x-qgis" }, { "shp", "application/x-qgis" }, { "shx", "application/x-qgis" }, { "qtl", "application/x-quicktimeplayer" }, { "rpm", "application/x-redhat-package-manager" }, { "rb", "application/x-ruby" }, { "sh", "application/x-sh" }, { "shar", "application/x-shar" }, { "swf", "application/x-shockwave-flash" }, { "swfl", "application/x-shockwave-flash" }, { "scr", "application/x-silverlight" }, { "sit", "application/x-stuffit" }, { "sitx", "application/x-stuffit" }, { "sv4cpio", "application/x-sv4cpio" }, { "sv4crc", "application/x-sv4crc" }, { "tar", "application/x-tar" }, { "tcl", "application/x-tcl" }, { "gf", "application/x-tex-gf" }, { "pk", "application/x-tex-pk" }, { "texinfo", "application/x-texinfo" }, { "texi", "application/x-texinfo" }, { "~", "application/x-trash" }, { "%", "application/x-trash" }, { "bak", "application/x-trash" }, { "old", "application/x-trash" }, { "sik", "application/x-trash" }, { "t", "application/x-troff" }, { "tr", "application/x-troff" }, { "roff", "application/x-troff" }, { "man", "application/x-troff-man" }, { "me", "application/x-troff-me" }, { "ms", "application/x-troff-ms" }, { "ustar", "application/x-ustar" }, { "src", "application/x-wais-source" }, { "wz", "application/x-wingz" }, { "crt", "application/x-x509-ca-cert" }, { "xcf", "application/x-xcf" }, { "fig", "application/x-xfig" }, { "xpi", "application/x-xpinstall" }, { "amr", "audio/amr" }, { "awb", "audio/amr-wb" }, { "axa", "audio/annodex" }, { "au", "audio/basic" }, { "snd", "audio/basic" }, { "flac", "audio/flac" }, { "mid", "audio/midi" }, { "midi", "audio/midi" }, { "kar", "audio/midi" }, { "mpga", "audio/mpeg" }, { "mpega", "audio/mpeg" }, { "mp2", "audio/mpeg" }, { "mp3", "audio/mpeg" }, { "m4a", "audio/mpeg" }, { "m3u", "audio/mpegurl" }, { "oga", "audio/ogg" }, { "ogg", "audio/ogg" }, { "spx", "audio/ogg" }, { "sid", "audio/prs.sid" }, { "aif", "audio/x-aiff" }, { "aiff", "audio/x-aiff" }, { "aifc", "audio/x-aiff" }, { "gsm", "audio/x-gsm" }, { "wma", "audio/x-ms-wma" }, { "wax", "audio/x-ms-wax" }, { "ra", "audio/x-pn-realaudio" }, { "rm", "audio/x-pn-realaudio" }, { "ram", "audio/x-pn-realaudio" }, { "pls", "audio/x-scpls" }, { "sd2", "audio/x-sd2" }, { "wav", "audio/x-wav" }, { "alc", "chemical/x-alchemy" }, { "cac", "chemical/x-cache" }, { "cache", "chemical/x-cache" }, { "csf", "chemical/x-cache-csf" }, { "cbin", "chemical/x-cactvs-binary" }, { "cascii", "chemical/x-cactvs-binary" }, { "ctab", "chemical/x-cactvs-binary" }, { "cdx", "chemical/x-cdx" }, { "cer", "chemical/x-cerius" }, { "c3d", "chemical/x-chem3d" }, { "chm", "chemical/x-chemdraw" }, { "cif", "chemical/x-cif" }, { "cmdf", "chemical/x-cmdf" }, { "cml", "chemical/x-cml" }, { "cpa", "chemical/x-compass" }, { "bsd", "chemical/x-crossfire" }, { "csml", "chemical/x-csml" }, { "csm", "chemical/x-csml" }, { "ctx", "chemical/x-ctx" }, { "cxf", "chemical/x-cxf" }, { "cef", "chemical/x-cxf" }, { "emb", "chemical/x-embl-dl-nucleotide" }, { "embl", "chemical/x-embl-dl-nucleotide" }, { "spc", "chemical/x-galactic-spc" }, { "inp", "chemical/x-gamess-input" }, { "gam", "chemical/x-gamess-input" }, { "gamin", "chemical/x-gamess-input" }, { "fch", "chemical/x-gaussian-checkpoint" }, { "fchk", "chemical/x-gaussian-checkpoint" }, { "cub", "chemical/x-gaussian-cube" }, { "gau", "chemical/x-gaussian-input" }, { "gjc", "chemical/x-gaussian-input" }, { "gjf", "chemical/x-gaussian-input" }, { "gal", "chemical/x-gaussian-log" }, { "gcg", "chemical/x-gcg8-sequence" }, { "gen", "chemical/x-genbank" }, { "hin", "chemical/x-hin" }, { "istr", "chemical/x-isostar" }, { "ist", "chemical/x-isostar" }, { "jdx", "chemical/x-jcamp-dx" }, { "dx", "chemical/x-jcamp-dx" }, { "kin", "chemical/x-kinemage" }, { "mcm", "chemical/x-macmolecule" }, { "mmd", "chemical/x-macromodel-input" }, { "mmod", "chemical/x-macromodel-input" }, { "mol", "chemical/x-mdl-molfile" }, { "rd", "chemical/x-mdl-rdfile" }, { "rxn", "chemical/x-mdl-rxnfile" }, { "sd", "chemical/x-mdl-sdfile" }, { "tgf", "chemical/x-mdl-tgf" }, { "mcif", "chemical/x-mmcif" }, { "mol2", "chemical/x-mol2" }, { "b", "chemical/x-molconn-Z" }, { "gpt", "chemical/x-mopac-graph" }, { "mop", "chemical/x-mopac-input" }, { "mopcrt", "chemical/x-mopac-input" }, { "mpc", "chemical/x-mopac-input" }, { "zmt", "chemical/x-mopac-input" }, { "moo", "chemical/x-mopac-out" }, { "mvb", "chemical/x-mopac-vib" }, { "asn", "chemical/x-ncbi-asn1" }, { "prt", "chemical/x-ncbi-asn1-ascii" }, { "ent", "chemical/x-ncbi-asn1-ascii" }, { "val", "chemical/x-ncbi-asn1-binary" }, { "aso", "chemical/x-ncbi-asn1-binary" }, { "pdb", "chemical/x-pdb" }, { "ros", "chemical/x-rosdal" }, { "sw", "chemical/x-swissprot" }, { "vms", "chemical/x-vamas-iso14976" }, { "vmd", "chemical/x-vmd" }, { "xtel", "chemical/x-xtel" }, { "xyz", "chemical/x-xyz" }, { "gif", "image/gif" }, { "ief", "image/ief" }, { "jpeg", "image/jpeg" }, { "jpg", "image/jpeg" }, { "jpe", "image/jpeg" }, { "pcx", "image/pcx" }, { "png", "image/png" }, { "svg", "image/svg+xml" }, { "svgz", "image/svg+xml" }, { "tiff", "image/tiff" }, { "tif", "image/tiff" }, { "djvu", "image/vnd.djvu" }, { "djv", "image/vnd.djvu" }, { "wbmp", "image/vnd.wap.wbmp" }, { "cr2", "image/x-canon-cr2" }, { "crw", "image/x-canon-crw" }, { "ras", "image/x-cmu-raster" }, { "cdr", "image/x-coreldraw" }, { "pat", "image/x-coreldrawpattern" }, { "cdt", "image/x-coreldrawtemplate" }, { "erf", "image/x-epson-erf" }, { "ico", "image/x-icon" }, { "art", "image/x-jg" }, { "jng", "image/x-jng" }, { "bmp", "image/x-ms-bmp" }, { "nef", "image/x-nikon-nef" }, { "orf", "image/x-olympus-orf" }, { "psd", "image/x-photoshop" }, { "pnm", "image/x-portable-anymap" }, { "pbm", "image/x-portable-bitmap" }, { "pgm", "image/x-portable-graymap" }, { "ppm", "image/x-portable-pixmap" }, { "rgb", "image/x-rgb" }, { "xbm", "image/x-xbitmap" }, { "xpm", "image/x-xpixmap" }, { "xwd", "image/x-xwindowdump" }, { "eml", "message/rfc822" }, { "igs", "model/iges" }, { "iges", "model/iges" }, { "msh", "model/mesh" }, { "mesh", "model/mesh" }, { "silo", "model/mesh" }, { "wrl", "model/vrml" }, { "vrml", "model/vrml" }, { "x3dv", "model/x3d+vrml" }, { "x3d", "model/x3d+xml" }, { "x3db", "model/x3d+binary" }, { "manifest", "text/cache-manifest" }, { "ics", "text/calendar" }, { "icz", "text/calendar" }, { "css", "text/css" }, { "csv", "text/csv" }, { "323", "text/h323" }, { "html", "text/html" }, { "htm", "text/html" }, { "shtml", "text/html" }, { "uls", "text/iuls" }, { "mml", "text/mathml" }, { "asc", "text/plain" }, { "txt", "text/plain" }, { "text", "text/plain" }, { "pot", "text/plain" }, { "brf", "text/plain" }, { "rtx", "text/richtext" }, { "sct", "text/scriptlet" }, { "wsc", "text/scriptlet" }, { "tm", "text/texmacs" }, { "ts", "text/texmacs" }, { "tsv", "text/tab-separated-values" }, { "jad", "text/vnd.sun.j2me.app-descriptor" }, { "wml", "text/vnd.wap.wml" }, { "wmls", "text/vnd.wap.wmlscript" }, { "bib", "text/x-bibtex" }, { "boo", "text/x-boo" }, { "h++", "text/x-c++hdr" }, { "hpp", "text/x-c++hdr" }, { "hxx", "text/x-c++hdr" }, { "hh", "text/x-c++hdr" }, { "c++", "text/x-c++src" }, { "cpp", "text/x-c++src" }, { "cxx", "text/x-c++src" }, { "cc", "text/x-c++src" }, { "h", "text/x-chdr" }, { "htc", "text/x-component" }, { "c", "text/x-csrc" }, { "d", "text/x-dsrc" }, { "diff", "text/x-diff" }, { "patch", "text/x-diff" }, { "hs", "text/x-haskell" }, { "java", "text/x-java" }, { "lhs", "text/x-literate-haskell" }, { "moc", "text/x-moc" }, { "p", "text/x-pascal" }, { "pas", "text/x-pascal" }, { "gcd", "text/x-pcs-gcd" }, { "pl", "text/x-perl" }, { "pm", "text/x-perl" }, { "py", "text/x-python" }, { "scala", "text/x-scala" }, { "etx", "text/x-setext" }, { "tk", "text/x-tcl" }, { "tex", "text/x-tex" }, { "ltx", "text/x-tex" }, { "sty", "text/x-tex" }, { "cls", "text/x-tex" }, { "vcs", "text/x-vcalendar" }, { "vcf", "text/x-vcard" }, { "3gp", "video/3gpp" }, { "axv", "video/annodex" }, { "dl", "video/dl" }, { "dif", "video/dv" }, { "dv", "video/dv" }, { "fli", "video/fli" }, { "gl", "video/gl" }, { "mpeg", "video/mpeg" }, { "mpg", "video/mpeg" }, { "mpe", "video/mpeg" }, { "mp4", "video/mp4" }, { "qt", "video/quicktime" }, { "mov", "video/quicktime" }, { "ogv", "video/ogg" }, { "mxu", "video/vnd.mpegurl" }, { "flv", "video/x-flv" }, { "lsf", "video/x-la-asf" }, { "lsx", "video/x-la-asf" }, { "mng", "video/x-mng" }, { "asf", "video/x-ms-asf" }, { "asx", "video/x-ms-asf" }, { "wm", "video/x-ms-wm" }, { "wmv", "video/x-ms-wmv" }, { "wmx", "video/x-ms-wmx" }, { "wvx", "video/x-ms-wvx" }, { "avi", "video/x-msvideo" }, { "movie", "video/x-sgi-movie" }, { "mpv", "video/x-matroska" }, { "mkv", "video/x-matroska" }, { "ice", "x-conference/x-cooltalk" }, { "sisx", "x-epoc/x-sisx-app" }, { "vrm", "x-world/x-vrml" } }; #endregion #region Get /// /// Returns the mime type for the requested file extension. Returns /// the default application/octet-stream if the extension is not found. /// /// /// public static String Get(String extension) { return Get(extension, MimeType["bin"]); } /// /// Returns the mime type for the requested file extension. Returns the /// specified defaultMimeType if the extension is not found. /// /// /// /// public static String Get(String extension, String defaultMimeType) { if (extension.StartsWith(".")) extension = extension.Remove(0, 1); if (MimeType.ContainsKey(extension)) return MimeType[extension]; else return defaultMimeType; } #endregion Get } }