文件类型工具类:FileTypeUtil

时间:2022-06-16 20:55:56

个人学习,仅供参考!

package com.example.administrator.filemanager.utils;

import java.io.File;
/**
 * 文件类型工具类
 *
 */
public class FileTypeUtil {
    public static final String TYPE_ANY = "all";
    public static final String TYPE_TXT = "txt";
    public static final String TYPE_IMAGE = "image";
    public static final String TYPE_VIDEO = "video";
    public static final String TYPE_AUDIO = "audio";
    public static final String TYPE_ZIP = "zip";
    public static final String TYPE_APK = "apk";

    /**
     * @param file
     *            文件
     *
     *            通过文件名称 获取文件图标以及类型
     *
     */
    public static String[] getFileIconAndTypeName(File file) {
        // 定义数组保存文件类型以及图标 iconAndTypes[0] 表示文件图标 iconAndTypes[1] 文件类型
        String[] iconAndTypes = new String[2];
        // 首先设置默认文件图标以及类型
        iconAndTypes[0] = "icon_file";
        iconAndTypes[1] = "*/*";
        if (file.isFile()) {
            // 根据文件名称进行判断
            String name = file.getName();
            int dotIndex = name.lastIndexOf(".");
            if (dotIndex < 0) {
                return iconAndTypes;
            }
            //获取文件后缀名称
            String end = name.substring(dotIndex + 1, name.length())
                    .toLowerCase();
            if (end.equals("")) {
                return iconAndTypes;
            }

            // 对  ICON_TYPE_Table进行便利   找到对应图标以及类型
            for (int i = 0; i < ICON_TYPE_Table.length; i++) {
                if (end.equals(ICON_TYPE_Table[i][0])) {
                    iconAndTypes[0] = ICON_TYPE_Table[i][1];
                    iconAndTypes[1] = ICON_TYPE_Table[i][2];
                }
            }
            return iconAndTypes;
        }
        return iconAndTypes;
    }

    private static final String[][] ICON_TYPE_Table = {
            // {文件后缀名,文件对应图像名称, 文件所属类型}
            { "apk", "icon_video", TYPE_APK },
            { "3gp", "icon_video", TYPE_VIDEO },
            { "aif", "icon_audio", TYPE_AUDIO },
            { "aifc", "icon_audio", TYPE_AUDIO },
            { "aiff", "icon_audio", TYPE_AUDIO },
            { "als", "icon_audio", TYPE_AUDIO },
            { "asc", "icon_text_plain", TYPE_TXT },
            { "asf", "icon_video", TYPE_VIDEO },
            { "asx", "icon_video", TYPE_VIDEO },
            { "au", "icon_audio", TYPE_AUDIO },
            { "avi", "icon_video", TYPE_VIDEO },
            { "awb", "icon_audio", TYPE_AUDIO },
            { "bmp", "icon_bmp", TYPE_IMAGE },
            { "bz2", "icon_archive", TYPE_ZIP }, { "c", "icon_c", TYPE_TXT },
            { "cpp", "icon_cpp", TYPE_TXT }, { "css", "icon_css", TYPE_TXT },
            { "dhtml", "icon_html", TYPE_TXT },
            { "doc", "icon_doc", TYPE_TXT }, { "dot", "icon_doc", TYPE_TXT },
            { "es", "icon_audio", TYPE_AUDIO },
            { "esl", "icon_audio", TYPE_AUDIO },
            { "fvi", "icon_video", TYPE_VIDEO },
            { "gif", "icon_gif", TYPE_IMAGE }, { "gz", "icon_gzip", TYPE_ZIP },
            { "h", "icon_c_h", TYPE_TXT }, { "htm", "icon_html", TYPE_TXT },
            { "html", "icon_html", TYPE_TXT },
            { "hts", "icon_html", TYPE_TXT },
            { "ico", "icon_ico", TYPE_IMAGE },
            { "ief", "icon_image", TYPE_IMAGE },
            { "ifm", "icon_gif", TYPE_IMAGE },
            { "ifs", "icon_image", TYPE_IMAGE },
            { "imy", "icon_audio", TYPE_AUDIO },
            { "it", "icon_audio", TYPE_AUDIO },
            { "itz", "icon_audio", TYPE_AUDIO },
            { "j2k", "icon_jpeg", TYPE_IMAGE },
            { "java", "icon_java", TYPE_TXT },
            { "jar", "icon_java", TYPE_ZIP },
            { "jnlp", "icon_java", TYPE_TXT },
            { "jpe", "icon_jpeg", TYPE_IMAGE },
            { "jpeg", "icon_jpeg", TYPE_IMAGE },
            { "jpg", "icon_jpeg", TYPE_IMAGE },
            { "jpz", "icon_jpeg", TYPE_IMAGE },
            { "js", "icon_javascript", TYPE_TXT },
            { "lsf", "icon_video", TYPE_VIDEO },
            { "lsx", "icon_video", TYPE_VIDEO },
            { "m15", "icon_audio", TYPE_AUDIO },
            { "m3u", "icon_playlist", TYPE_AUDIO },
            { "m3url", "icon_playlist", TYPE_AUDIO },
            { "ma1", "icon_audio", TYPE_AUDIO },
            { "ma2", "icon_audio", TYPE_AUDIO },
            { "ma3", "icon_audio", TYPE_AUDIO },
            { "ma5", "icon_audio", TYPE_AUDIO },
            { "mdz", "icon_audio", TYPE_AUDIO },
            { "mid", "icon_audio", TYPE_AUDIO },
            { "midi", "icon_audio", TYPE_AUDIO },
            { "mil", "icon_image", TYPE_IMAGE },
            { "mio", "icon_audio", TYPE_AUDIO },
            { "mng", "icon_video", TYPE_VIDEO },
            { "mod", "icon_audio", TYPE_AUDIO },
            { "mov", "icon_video", TYPE_VIDEO },
            { "movie", "icon_video", TYPE_VIDEO },
            { "mp2", "icon_mp3", TYPE_AUDIO },
            { "mp3", "icon_mp3", TYPE_AUDIO },
            { "mp4", "icon_video", TYPE_VIDEO },
            { "mpe", "icon_video", TYPE_VIDEO },
            { "mpeg", "icon_video", TYPE_VIDEO },
            { "mpg", "icon_video", TYPE_VIDEO },
            { "mpg4", "icon_video", TYPE_VIDEO },
            { "mpga", "icon_mp3", TYPE_AUDIO },
            { "nar", "icon_zip", TYPE_ZIP },
            { "nbmp", "icon_image", TYPE_IMAGE },
            { "nokia-op-logo", "icon_image", TYPE_IMAGE },
            { "nsnd", "icon_audio", TYPE_AUDIO },
            { "pac", "icon_audio", TYPE_AUDIO },
            { "pae", "icon_audio", TYPE_AUDIO },
            { "pbm", "icon_bmp", TYPE_IMAGE },
            { "pcx", "icon_image", TYPE_IMAGE },
            { "pda", "icon_image", TYPE_IMAGE },
            { "pdf", "icon_pdf", TYPE_TXT },
            { "pgm", "icon_image", TYPE_IMAGE },
            { "pict", "icon_image", TYPE_IMAGE },
            { "png", "icon_png", TYPE_IMAGE },
            { "pnm", "icon_image", TYPE_IMAGE },
            { "pnz", "icon_png", TYPE_IMAGE }, { "pot", "icon_ppt", TYPE_TXT },
            { "ppm", "icon_image", TYPE_IMAGE },
            { "pps", "icon_ppt", TYPE_TXT }, { "ppt", "icon_ppt", TYPE_TXT },
            { "pvx", "icon_video", TYPE_VIDEO },
            { "qcp", "icon_audio", TYPE_AUDIO },
            { "qt", "icon_video", TYPE_VIDEO },
            { "qti", "icon_image", TYPE_IMAGE },
            { "qtif", "icon_image", TYPE_IMAGE },
            { "ra", "icon_audio", TYPE_AUDIO },
            { "ram", "icon_audio", TYPE_AUDIO },
            { "rar", "icon_rar", TYPE_ZIP },
            { "ras", "icon_image", TYPE_IMAGE },
            { "rf", "icon_image", TYPE_IMAGE },
            { "rgb", "icon_image", TYPE_IMAGE },
            { "rm", "icon_audio", TYPE_AUDIO },
            { "rmf", "icon_audio", TYPE_AUDIO },
            { "rmm", "icon_audio", TYPE_AUDIO },
            { "rmvb", "icon_audio", TYPE_AUDIO },
            { "rp", "icon_image", TYPE_IMAGE },
            { "rpm", "icon_audio", TYPE_AUDIO },
            { "rtf", "icon_text_richtext", TYPE_TXT },
            { "rv", "icon_video", TYPE_VIDEO },
            { "s3m", "icon_audio", TYPE_AUDIO },
            { "s3z", "icon_audio", TYPE_AUDIO },
            { "shtml", "icon_html", TYPE_TXT },
            { "si6", "icon_image", TYPE_IMAGE },
            { "si7", "icon_image", TYPE_IMAGE },
            { "si9", "icon_image", TYPE_IMAGE },
            { "smd", "icon_audio", TYPE_AUDIO },
            { "smz", "icon_audio", TYPE_AUDIO },
            { "snd", "icon_audio", TYPE_AUDIO },
            { "stm", "icon_audio", TYPE_AUDIO },
            { "svf", "icon_image", TYPE_IMAGE },
            { "svg", "icon_image", TYPE_IMAGE },
            { "svh", "icon_image", TYPE_IMAGE },
            { "swf", "icon_flash", TYPE_VIDEO },
            { "swfl", "icon_flash", TYPE_VIDEO },
            { "tar", "icon_tar", TYPE_ZIP }, { "taz", "icon_tar", TYPE_ZIP },
            { "tgz", "icon_tar", TYPE_ZIP },
            { "tif", "icon_tiff", TYPE_IMAGE },
            { "tiff", "icon_tiff", TYPE_IMAGE },
            { "toy", "icon_image", TYPE_IMAGE },
            { "tsi", "icon_audio", TYPE_AUDIO },
            { "txt", "icon_text_plain", TYPE_TXT },
            { "ult", "icon_audio", TYPE_AUDIO },
            { "vdo", "icon_video", TYPE_VIDEO },
            { "vib", "icon_audio", TYPE_AUDIO },
            { "viv", "icon_video", TYPE_VIDEO },
            { "vivo", "icon_video", TYPE_VIDEO },
            { "vox", "icon_audio", TYPE_AUDIO },
            { "vqe", "icon_audio", TYPE_AUDIO },
            { "vqf", "icon_audio", TYPE_AUDIO },
            { "vql", "icon_audio", TYPE_AUDIO },
            { "wav", "icon_wav", TYPE_VIDEO },
            { "wax", "icon_audio", TYPE_AUDIO },
            { "wbmp", "icon_bmp", TYPE_IMAGE },
            { "wi", "icon_image", TYPE_IMAGE },
            { "wm", "icon_video", TYPE_VIDEO },
            { "wma", "icon_wma", TYPE_AUDIO },
            { "wmv", "icon_video", TYPE_VIDEO },
            { "wmx", "icon_video", TYPE_VIDEO },
            { "wpng", "icon_png", TYPE_IMAGE },
            { "wv", "icon_video", TYPE_VIDEO },
            { "wvx", "icon_video", TYPE_VIDEO },
            { "xbm", "icon_bmp", TYPE_IMAGE },
            { "xht", "icon_xhtml_xml", TYPE_TXT },
            { "xhtm", "icon_xhtml_xml", TYPE_TXT },
            { "xhtml", "icon_xhtml_xml", TYPE_TXT },
            { "xla", "icon_xls", TYPE_TXT }, { "xlc", "icon_xls", TYPE_TXT },
            { "xlm", "icon_xls", TYPE_TXT }, { "xls", "icon_xls", TYPE_TXT },

            { "xlt", "icon_xls", TYPE_TXT }, { "xlw", "icon_xls", TYPE_TXT },
            { "xm", "icon_audio", TYPE_AUDIO },
            { "xml", "icon_xml", TYPE_TXT },
            { "xmz", "icon_audio", TYPE_AUDIO },
            { "xpm", "icon_image", TYPE_IMAGE },
            { "xsit", "icon_xml", TYPE_TXT }, { "xsl", "icon_xml", TYPE_TXT },
            { "xwd", "icon_image", TYPE_IMAGE },
            { "zip", "icon_zip", TYPE_ZIP } };

    /**
     * 根据文件后缀名获得对应的MIME类型。
     *
     * @param file
     */
    public static String getMIMEType(File file) {
        String type = "*/*";
        String fName = file.getName();
        // 获取后缀名前的分隔符"."在fName中的位置。
        int dotIndex = fName.lastIndexOf(".");
        if (dotIndex < 0) {
            return type;
        }
        /* 获取文件的后缀名 */
        String end = fName.substring(dotIndex + 1, fName.length())
                .toLowerCase();
        if (end == "")
            return type;
        // 在MIME和文件类型的匹配表中找到对应的MIME类型。
        for (int i = 0; i < MIME_Table.length; i++) {
            if (end.equals(MIME_Table[i][0]))
                type = MIME_Table[i][1];
        }
        return type;
    }

    /** 文件MIME类型(主要用做打开操作时,指定打开的指定文件对应所属的MIME类型) */
    private static final String[][] MIME_Table = {
            // {后缀名,MIME类型}
            { "aab", "application/x-authoware-bin" },
            { "aam", "application/x-authoware-map" },
            { "aas", "application/x-authoware-seg" },
            { "amc", "application/x-mpeg" },
            { "ani", "application/octet-stream" },
            { "apk", "application/vnd.android.package-archive" },
            { "asd", "application/astound" }, { "asn", "application/astound" },
            { "asp", "application/x-asap" },
            { "ai", "application/postscript" },
            { "avb", "application/octet-stream" },
            { "bcpio", "application/x-bcpio" },
            { "bin", "application/octet-stream" },
            { "bld", "application/bld" }, { "bld2", "application/bld2" },
            { "aif", "audio/x-aiff" }, { "aifc", "audio/x-aiff" },
            { "aiff", "audio/x-aiff" }, { "als", "audio/X-Alpha5" },
            { "au", "audio/basic" }, { "awb", "audio/amr-wb" },
            { "3gp", "video/3gpp" }, { "asf", "video/x-ms-asf" },
            { "asx", "video/x-ms-asf" }, { "avi", "video/x-msvideo" },
            { "asc", "text/plain" }, { "bmp", "image/bmp" },
            { "bpk", "application/octet-stream" },
            { "bz2", "application/x-bzip2" }, { "c", "text/x-csrc" },
            { "cpp", "text/x-c++src" }, { "cal", "image/x-cals" },
            { "ccn", "application/x-cnc" }, { "cco", "application/x-cocoa" },
            { "cdf", "application/x-netcdf" },
            { "cgi", "magnus-internal/cgi" }, { "chat", "application/x-chat" },
            { "class", "application/octet-stream" },
            { "clp", "application/x-msclip" }, { "cmx", "application/x-cmx" },
            { "co", "application/x-cult3d-object" },
            { "cod", "image/cis-cod" }, { "csh", "application/x-csh" },
            { "csm", "chemical/x-csml" }, { "csml", "chemical/x-csml" },
            { "css", "text/css" }, { "dcm", "x-lml/x-evm" },
            { "cpio", "application/x-cpio" },
            { "cpt", "application/mac-compactpro" },
            { "crd", "application/x-mscardfile" },
            { "cur", "application/octet-stream" },
            { "dcr", "application/x-director" },
            { "dir", "application/x-director" },
            { "dll", "application/octet-stream" },
            { "dmg", "application/octet-stream" },
            { "dms", "application/octet-stream" },
            { "doc", "application/msword" }, { "dot", "application/x-dot" },
            { "dvi", "application/x-dvi" }, { "dwg", "application/x-autocad" },
            { "dxf", "application/x-autocad" },
            { "dxr", "application/x-director" },
            { "ebk", "application/x-expandedbook" },
            { "etc", "application/x-earthtime" }, { "dcx", "image/x-dcx" },
            { "dhtml", "text/html" }, { "dwf", "drawing/x-dwf" },
            { "emb", "chemical/x-embl-dl-nucleotide" },
            { "embl", "chemical/x-embl-dl-nucleotide" },
            { "eps", "application/postscript" }, { "eri", "image/x-eri" },
            { "es", "audio/echospeech" }, { "esl", "audio/echospeech" },
            { "etx", "text/x-setext" }, { "evm", "x-lml/x-evm" },
            { "evy", "application/x-envoy" },
            { "exe", "application/octet-stream" },
            { "fh4", "image/x-freehand" }, { "fh5", "image/x-freehand" },
            { "fhc", "image/x-freehand" }, { "fif", "image/fif" },
            { "fm", "application/x-maker" }, { "fpx", "image/x-fpx" },
            { "fvi", "video/isivideo" },
            { "gau", "chemical/x-gaussian-input" },
            { "gca", "application/x-gca-compressed" },
            { "gdb", "x-lml/x-gdb" }, { "gif", "image/gif" },
            { "gps", "application/x-gps" }, { "gtar", "application/x-gtar" },
            { "gz", "application/x-gzip" }, { "h", "text/x-chdr" },
            { "hdf", "application/x-hdf" }, { "hdm", "text/x-hdml" },
            { "hdml", "text/x-hdml" }, { "hlp", "application/winhlp" },
            { "hqx", "application/mac-binhex40" }, { "htm", "text/html" },
            { "html", "text/html" }, { "hts", "text/html" },
            { "ice", "x-conference/x-cooltalk" },
            { "ico", "application/octet-stream" }, { "ief", "image/ief" },
            { "ifm", "image/gif" }, { "ifs", "image/ifs" },
            { "imy", "audio/melody" }, { "ins", "application/x-NET-Install" },
            { "ips", "application/x-ipscript" },
            { "ipx", "application/x-ipix" }, { "it", "audio/x-mod" },
            { "itz", "audio/x-mod" }, { "ivr", "i-world/i-vrml" },
            { "j2k", "image/j2k" },
            { "jad", "text/vnd.sun.j2me.app-descriptor" },
            { "jam", "application/x-jam" }, { "java", "application/x-java" },
            { "jar", "application/java-archive" },
            { "jnlp", "application/x-java-jnlp-file" },
            { "jpe", "image/jpeg" }, { "jpeg", "image/jpeg" },
            { "jpg", "image/jpeg" }, { "jpz", "image/jpeg" },
            { "js", "application/x-javascript" }, { "jwc", "application/jwc" },
            { "kjx", "application/x-kjx" }, { "lak", "x-lml/x-lak" },
            { "latex", "application/x-latex" },
            { "lcc", "application/fastman" },
            { "lcl", "application/x-digitalloca" },
            { "lcr", "application/x-digitalloca" },
            { "lgh", "application/lgh" },
            { "lha", "application/octet-stream" }, { "lml", "x-lml/x-lml" },
            { "lmlpack", "x-lml/x-lmlpack" }, { "lsf", "video/x-ms-asf" },
            { "lsx", "video/x-ms-asf" }, { "lzh", "application/x-lzh" },
            { "m13", "application/x-msmediaview" },
            { "m14", "application/x-msmediaview" }, { "m15", "audio/x-mod" },
            { "m3u", "audio/x-mpegurl" }, { "m3url", "audio/x-mpegurl" },
            { "ma1", "audio/ma1" }, { "ma2", "audio/ma2" },
            { "ma3", "audio/ma3" }, { "ma5", "audio/ma5" },
            { "man", "application/x-troff-man" },
            { "map", "magnus-internal/imagemap" },
            { "mbd", "application/mbedlet" },
            { "mct", "application/x-mascot" },
            { "mdb", "application/x-msaccess" }, { "mdz", "audio/x-mod" },
            { "me", "application/x-troff-me" }, { "mel", "text/x-vmel" },
            { "mi", "application/x-mif" }, { "mid", "audio/midi" },
            { "midi", "audio/midi" }, { "mif", "application/x-mif" },
            { "mil", "image/x-cals" }, { "mio", "audio/x-mio" },
            { "mmf", "application/x-skt-lbs" }, { "mng", "video/x-mng" },
            { "mny", "application/x-msmoney" },
            { "moc", "application/x-mocha" },
            { "mocha", "application/x-mocha" }, { "mod", "audio/x-mod" },
            { "mof", "application/x-yumekara" },
            { "mol", "chemical/x-mdl-molfile" },
            { "mop", "chemical/x-mopac-input" }, { "mov", "video/quicktime" },
            { "movie", "video/x-sgi-movie" }, { "mp2", "audio/x-mpeg" },
            { "mp3", "audio/x-mpeg" }, { "mp4", "video/mp4" },
            { "mpc", "application/vnd.mpohun.certificate" },
            { "mpe", "video/mpeg" }, { "mpeg", "video/mpeg" },
            { "mpg", "video/mpeg" }, { "mpg4", "video/mp4" },
            { "mpga", "audio/mpeg" },
            { "mpn", "application/vnd.mophun.application" },
            { "mpp", "application/vnd.ms-project" },
            { "mps", "application/x-mapserver" }, { "mrl", "text/x-mrml" },
            { "mrm", "application/x-mrm" }, { "ms", "application/x-troff-ms" },
            { "mts", "application/metastream" },
            { "mtx", "application/metastream" },
            { "mtz", "application/metastream" },
            { "mzv", "application/metastream" }, { "nar", "application/zip" },
            { "nbmp", "image/nbmp" }, { "nc", "application/x-netcdf" },
            { "ndb", "x-lml/x-ndb" }, { "ndwn", "application/ndwn" },
            { "nif", "application/x-nif" }, { "nmz", "application/x-scream" },
            { "nokia-op-logo", "image/vnd.nok-oplogo-color" },
            { "npx", "application/x-netfpx" }, { "nsnd", "audio/nsnd" },
            { "nva", "application/x-neva1" }, { "oda", "application/oda" },
            { "oom", "application/x-AtlasMate-Plugin" },
            { "pac", "audio/x-pac" }, { "pae", "audio/x-epac" },
            { "pan", "application/x-pan" },
            { "pbm", "image/x-portable-bitmap" }, { "pcx", "image/x-pcx" },
            { "pda", "image/x-pda" }, { "pdb", "chemical/x-pdb" },
            { "pdf", "application/pdf" }, { "pfr", "application/font-tdpfr" },
            { "pgm", "image/x-portable-graymap" }, { "pict", "image/x-pict" },
            { "pm", "application/x-perl" }, { "pmd", "application/x-pmd" },
            { "png", "image/png" }, { "pnm", "image/x-portable-anymap" },
            { "pnz", "image/png" }, { "pot", "application/vnd.ms-powerpoint" },
            { "ppm", "image/x-portable-pixmap" },
            { "pps", "application/vnd.ms-powerpoint" },
            { "ppt", "application/vnd.ms-powerpoint" },
            { "pqf", "application/x-cprplayer" },
            { "pqi", "application/cprplayer" }, { "prc", "application/x-prc" },
            { "proxy", "application/x-ns-proxy-autoconfig" },
            { "ps", "application/postscript" },
            { "ptlk", "application/listenup" },
            { "pub", "application/x-mspublisher" },
            { "pvx", "video/x-pv-pvx" }, { "qcp", "audio/vnd.qcelp" },
            { "qt", "video/quicktime" }, { "qti", "image/x-quicktime" },
            { "qtif", "image/x-quicktime" },
            { "r3t", "text/vnd.rn-realtext3d" },
            { "ra", "audio/x-pn-realaudio" },
            { "ram", "audio/x-pn-realaudio" },
            { "rar", "application/x-rar-compressed" },
            { "ras", "image/x-cmu-raster" }, { "rdf", "application/rdf+xml" },
            { "rf", "image/vnd.rn-realflash" }, { "rgb", "image/x-rgb" },
            { "rlf", "application/x-richlink" },
            { "rm", "audio/x-pn-realaudio" }, { "rmf", "audio/x-rmf" },
            { "rmm", "audio/x-pn-realaudio" },
            { "rmvb", "audio/x-pn-realaudio" },
            { "rnx", "application/vnd.rn-realplayer" },
            { "roff", "application/x-troff" },
            { "rp", "image/vnd.rn-realpix" },
            { "rpm", "audio/x-pn-realaudio-plugin" },
            { "rt", "text/vnd.rn-realtext" }, { "rte", "x-lml/x-gps" },
            { "rtf", "application/rtf" }, { "rtg", "application/metastream" },
            { "rtx", "text/richtext" }, { "rv", "video/vnd.rn-realvideo" },
            { "rwc", "application/x-rogerwilco" }, { "s3m", "audio/x-mod" },
            { "s3z", "audio/x-mod" }, { "sca", "application/x-supercard" },
            { "scd", "application/x-msschedule" },
            { "sdf", "application/e-score" },
            { "sea", "application/x-stuffit" }, { "sgm", "text/x-sgml" },
            { "sgml", "text/x-sgml" }, { "sh", "application/x-sh" },
            { "shar", "application/x-shar" },
            { "shtml", "magnus-internal/parsed-html" },
            { "shw", "application/presentations" }, { "si6", "image/si6" },
            { "si7", "image/vnd.stiwap.sis" },
            { "si9", "image/vnd.lgtwap.sis" },
            { "sis", "application/vnd.symbian.install" },
            { "sit", "application/x-stuffit" },
            { "skd", "application/x-Koan" }, { "skm", "application/x-Koan" },
            { "skp", "application/x-Koan" }, { "skt", "application/x-Koan" },
            { "slc", "application/x-salsa" }, { "smd", "audio/x-smd" },
            { "smi", "application/smil" }, { "smil", "application/smil" },
            { "smp", "application/studiom" }, { "smz", "audio/x-smd" },
            { "snd", "audio/basic" }, { "spc", "text/x-speech" },
            { "spl", "application/futuresplash" },
            { "spr", "application/x-sprite" },
            { "sprite", "application/x-sprite" },
            { "spt", "application/x-spt" },
            { "src", "application/x-wais-source" },
            { "stk", "application/hyperstudio" }, { "stm", "audio/x-mod" },
            { "sv4cpio", "application/x-sv4cpio" },
            { "sv4crc", "application/x-sv4crc" }, { "svf", "image/vnd" },
            { "svg", "image/svg-xml" }, { "svh", "image/svh" },
            { "svr", "x-world/x-svr" },
            { "swf", "application/x-shockwave-flash" },
            { "swfl", "application/x-shockwave-flash" },
            { "t", "application/x-troff" },
            { "tad", "application/octet-stream" }, { "talk", "text/x-speech" },
            { "tar", "application/x-tar" }, { "taz", "application/x-tar" },
            { "tbp", "application/x-timbuktu" },
            { "tbt", "application/x-timbuktu" },
            { "tcl", "application/x-tcl" }, { "tex", "application/x-tex" },
            { "texi", "application/x-texinfo" },
            { "texinfo", "application/x-texinfo" },
            { "tgz", "application/x-tar" },
            { "thm", "application/vnd.eri.thm" }, { "tif", "image/tiff" },
            { "tiff", "image/tiff" }, { "tki", "application/x-tkined" },
            { "tkined", "application/x-tkined" }, { "toc", "application/toc" },
            { "toy", "image/toy" }, { "tr", "application/x-troff" },
            { "trk", "x-lml/x-gps" }, { "trm", "application/x-msterminal" },
            { "tsi", "audio/tsplayer" }, { "tsp", "application/dsptype" },
            { "tsv", "text/tab-separated-values" },
            { "tsv", "text/tab-separated-values" },
            { "ttf", "application/octet-stream" },
            { "ttz", "application/t-time" }, { "txt", "text/plain" },
            { "ult", "audio/x-mod" }, { "ustar", "application/x-ustar" },
            { "uu", "application/x-uuencode" },
            { "uue", "application/x-uuencode" },
            { "vcd", "application/x-cdlink" }, { "vcf", "text/x-vcard" },
            { "vdo", "video/vdo" }, { "vib", "audio/vib" },
            { "viv", "video/vivo" }, { "vivo", "video/vivo" },
            { "vmd", "application/vocaltec-media-desc" },
            { "vmf", "application/vocaltec-media-file" },
            { "vmi", "application/x-dreamcast-vms-info" },
            { "vms", "application/x-dreamcast-vms" },
            { "vox", "audio/voxware" }, { "vqe", "audio/x-twinvq-plugin" },
            { "vqf", "audio/x-twinvq" }, { "vql", "audio/x-twinvq" },
            { "vre", "x-world/x-vream" }, { "vrml", "x-world/x-vrml" },
            { "vrt", "x-world/x-vrt" }, { "vrw", "x-world/x-vream" },
            { "vts", "workbook/formulaone" }, { "wav", "audio/x-wav" },
            { "wax", "audio/x-ms-wax" }, { "wbmp", "image/vnd.wap.wbmp" },
            { "web", "application/vnd.xara" }, { "wi", "image/wavelet" },
            { "wis", "application/x-InstallShield" },
            { "wm", "video/x-ms-wm" }, { "wma", "audio/x-ms-wma" },
            { "wmd", "application/x-ms-wmd" },
            { "wmf", "application/x-msmetafile" },
            { "wml", "text/vnd.wap.wml" },
            { "wmlc", "application/vnd.wap.wmlc" },
            { "wmls", "text/vnd.wap.wmlscript" },
            { "wmlsc", "application/vnd.wap.wmlscriptc" },
            { "wmlscript", "text/vnd.wap.wmlscript" },
            { "wmv", "audio/x-ms-wmv" }, { "wmx", "video/x-ms-wmx" },
            { "wmz", "application/x-ms-wmz" }, { "wpng", "image/x-up-wpng" },
            { "wpt", "x-lml/x-gps" }, { "wri", "application/x-mswrite" },
            { "wrl", "x-world/x-vrml" }, { "wrz", "x-world/x-vrml" },
            { "ws", "text/vnd.wap.wmlscript" },
            { "wsc", "application/vnd.wap.wmlscriptc" },
            { "wv", "video/wavelet" }, { "wvx", "video/x-ms-wvx" },
            { "wxl", "application/x-wxl" }, { "x-gzip", "application/x-gzip" },
            { "xar", "application/vnd.xara" }, { "xbm", "image/x-xbitmap" },
            { "xdm", "application/x-xdma" }, { "xdma", "application/x-xdma" },
            { "xdw", "application/vnd.fujixerox.docuworks" },
            { "xht", "application/xhtml+xml" },
            { "xhtm", "application/xhtml+xml" },
            { "xhtml", "application/xhtml+xml" },
            { "xla", "application/vnd.ms-excel" },
            { "xlc", "application/vnd.ms-excel" },
            { "xll", "application/x-excel" },
            { "xlm", "application/vnd.ms-excel" },
            { "xls", "application/vnd.ms-excel" },
            { "xlt", "application/vnd.ms-excel" },
            { "xlw", "application/vnd.ms-excel" }, { "xm", "audio/x-mod" },
            { "xml", "text/xml" }, { "xmz", "audio/x-mod" },
            { "xpi", "application/x-xpinstall" }, { "xpm", "image/x-xpixmap" },
            { "xsit", "text/xml" }, { "xsl", "text/xml" },
            { "xul", "text/xul" }, { "xwd", "image/x-xwindowdump" },
            { "xyz", "chemical/x-pdb" }, { "yz1", "application/x-yz1" },
            { "z", "application/x-compress" },
            { "zac", "application/x-zaurus-zac" },
            { "zip", "application/zip    " }, };

}