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