1/* 2 * Copyright (c) 2021-2023 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16import { MimeType } from '../../databases/model/MimeType' 17import StringUtil from '../../base/utils/StringUtil' 18 19/** 20 * 文件媒体类型 21 */ 22export class FileMimeTypeUtil { 23 /** 24 * Image file types 25 */ 26 public static FILE_TYPE_PNG: number = 1 27 public static FILE_TYPE_JPG: number = 2 28 public static FILE_TYPE_JPEG: number = 3 29 public static FILE_TYPE_GIF: number = 4 30 public static FILE_TYPE_BMP: number = 5 31 public static FILE_TYPE_ICO: number = 6 32 public static FILE_TYPE_RAW: number = 7 33 public static FILE_TYPE_TIF: number = 8 34 public static FILE_TYPE_WEBP: number = 9 35 public static FILE_TYPE_HEIC: number = 10 36 public static FILE_TYPE_WBMP: number = 12 37 public static FILE_TYPE_CR2: number = 13 38 public static FILE_TYPE_PSD: number = 14 39 private static FIRST_IMAGE_FILE_TYPE: number = FileMimeTypeUtil.FILE_TYPE_PNG 40 private static LAST_IMAGE_FILE_TYPE: number = FileMimeTypeUtil.FILE_TYPE_PSD 41 42 /** 43 * Video file types 44 */ 45 public static FILE_TYPE_MP4: number = 21 46 public static FILE_TYPE_AVI: number = 22 47 public static FILE_TYPE_MP2TS: number = 23 48 public static FILE_TYPE_MOV: number = 24 49 public static FILE_TYPE_RM: number = 25 50 public static FILE_TYPE_RMVB: number = 26 51 public static FILE_TYPE_FLV: number = 27 52 public static FILE_TYPE_MKV: number = 28 53 public static FILE_TYPE_M4U: number = 29 54 public static FILE_TYPE_WMV: number = 30 55 public static FILE_TYPE_ASF: number = 31 56 public static FILE_TYPE_RV: number = 32 57 public static FILE_TYPE_DIVX: number = 33 58 public static FILE_TYPE_3GPP: number = 34 59 public static FILE_TYPE_M4V: number = 35 60 public static FILE_TYPE_F4V: number = 36 61 public static FILE_TYPE_WEBM: number = 37 62 public static FILE_TYPE_3GPP2: number = 38 63 public static FILE_TYPE_MP2PS: number = 39 64 private static FIRST_VIDEO_FILE_TYPE: number = FileMimeTypeUtil.FILE_TYPE_MP4 65 private static LAST_VIDEO_FILE_TYPE: number = FileMimeTypeUtil.FILE_TYPE_MP2PS 66 67 /** 68 * document file types 69 */ 70 public static FILE_TYPE_MS_WORD: number = 50 71 public static FILE_TYPE_MS_POWERPOINT: number = 52 72 public static FILE_TYPE_MS_EXCEL: number = 53 73 public static FILE_TYPE_PDF: number = 54 74 public static FILE_TYPE_HTML: number = 55 75 public static FILE_TYPE_XML: number = 56 76 public static FILE_TYPE_TEXT: number = 57 77 public static FILE_TYPE_MORE_TEXT: number = 58 78 private static FIRST_DOC_FILE_TYPE: number = FileMimeTypeUtil.FILE_TYPE_MS_WORD 79 private static LAST_DOC_FILE_TYPE: number = FileMimeTypeUtil.FILE_TYPE_MORE_TEXT 80 81 /** 82 * Audio file types 83 */ 84 public static FILE_TYPE_MP3: number = 70 85 public static FILE_TYPE_WAV: number = 71 86 public static FILE_TYPE_AAC: number = 72 87 public static FILE_TYPE_RAM: number = 73 88 public static FILE_TYPE_APE: number = 74 89 public static FILE_TYPE_WMA: number = 75 90 public static FILE_TYPE_AU: number = 76 91 public static FILE_TYPE_FLAC: number = 77 92 public static FILE_TYPE_MP2: number = 78 93 public static FILE_TYPE_RA: number = 79 94 public static FILE_TYPE_AC3: number = 80 95 public static FILE_TYPE_OGG: number = 81 96 public static FILE_TYPE_AMR: number = 82 97 public static FILE_TYPE_M4A: number = 83 98 public static FILE_TYPE_MP4A: number = 84 99 public static FILE_TYPE_AIFF: number = 85 100 public static FILE_TYPE_MMF: number = 86 101 public static FILE_TYPE_AWB: number = 87 102 public static FILE_TYPE_MKA: number = 88 103 public static FILE_TYPE_QCP: number = 89 104 public static FILE_TYPE_MPGA: number = 90 105 public static FILE_TYPE_MXMF: number = 91 106 public static FILE_TYPE_MID: number = 92 107 public static FILE_TYPE_SMF: number = 93 108 public static FILE_TYPE_IMY: number = 94 109 public static FILE_TYPE_M3U: number = 95 110 public static FILE_TYPE_PLS: number = 96 111 public static FILE_TYPE_WPL: number = 97 112 public static FILE_TYPE_RM_AUDIO: number = 98 113 public static FILE_TYPE_MP4_AUDIO: number = 99 114 public static FILE_TYPE_3GPP_AUDIO: number = 100 115 private static FIRST_AUDIO_FILE_TYPE: number = FileMimeTypeUtil.FILE_TYPE_MP3 116 private static LAST_AUDIO_FILE_TYPE: number = FileMimeTypeUtil.FILE_TYPE_3GPP_AUDIO 117 118 /** 119 * compressed file types 120 */ 121 public static FILE_TYPE_ZIP: number = 110 122 public static FILE_TYPE_RAR: number = 111 123 public static FILE_TYPE_JAR: number = 112 124 public static FILE_TYPE_GZ: number = 113 125 public static FILE_TYPE_TAR: number = 114 126 public static FILE_TYPE_Z: number = 115 127 public static FILE_TYPE_7Z: number = 116 128 public static FILE_TYPE_BZ: number = 117 129 public static FILE_TYPE_BZ2: number = 118 130 public static FILE_TYPE_TGZ: number = 119 131 private static FIRST_COMPRESS_FILE_TYPE: number = FileMimeTypeUtil.FILE_TYPE_ZIP 132 private static LAST_COMPRESS_FILE_TYPE: number = FileMimeTypeUtil.FILE_TYPE_TGZ 133 134 /** 135 * apk file types 136 */ 137 public static FILE_TYPE_APK: number = 130 138 public static FILE_TYPE_HAP: number = 131 139 140 /** 141 * vcf file types 142 */ 143 public static FILE_TYPE_VCF: number = 135 144 145 /** 146 * 未知类型 147 */ 148 public static FILE_TYPE_UNKNOW: number = 200 149 public static SUFFIX_DLP = 'DLP' 150 private static UNKNOW_MIMETYPE: MimeType = new MimeType( 151 null, 152 MimeType.FILE_CATEGORY_UNKNOW, 153 FileMimeTypeUtil.FILE_TYPE_UNKNOW, 154 $r('app.media.hidisk_icon_unknown'), 155 $r('app.media.hidisk_icon_unknown_grid'), 156 $r('app.media.hidisk_icon_unknown_grid_local'), 157 null 158 ) 159 private static fileMimeTypeMap: Map<string, MimeType> = new Map<string, MimeType>() 160 161 private static addFileMimeType(extension: string, fileCategory: number, fileTypeSort: number, resID: Resource, 162 gridResID: Resource, localGridResID: Resource, mimeType: string): void { 163 const mType: MimeType = new MimeType(extension, fileCategory, fileTypeSort, resID, gridResID, localGridResID, mimeType) 164 FileMimeTypeUtil.fileMimeTypeMap.set(extension, mType) 165 } 166 167 static setFileMimeTypeMap() { 168 // 图片 169 this.addFileMimeType("PNG", MimeType.FILE_CATEGORY_IMAGE, FileMimeTypeUtil.FILE_TYPE_PNG, 170 $r('app.media.hidisk_icon_picture'), $r('app.media.hidisk_icon_picture_grid'), $r('app.media.hidisk_icon_picture_grid_local'), "image/png") 171 this.addFileMimeType("WBMP", MimeType.FILE_CATEGORY_IMAGE, FileMimeTypeUtil.FILE_TYPE_WBMP, 172 $r('app.media.hidisk_icon_picture'), $r('app.media.hidisk_icon_picture_grid'), $r('app.media.hidisk_icon_picture_grid_local'), "image/vnd.wap.wbmp") 173 this.addFileMimeType("BMP", MimeType.FILE_CATEGORY_IMAGE, FileMimeTypeUtil.FILE_TYPE_BMP, 174 $r('app.media.hidisk_icon_picture'), $r('app.media.hidisk_icon_picture_grid'), $r('app.media.hidisk_icon_picture_grid_local'), "image/bmp") 175 this.addFileMimeType("GIF", MimeType.FILE_CATEGORY_IMAGE, FileMimeTypeUtil.FILE_TYPE_GIF, 176 $r('app.media.hidisk_icon_picture'), $r('app.media.hidisk_icon_picture_grid'), $r('app.media.hidisk_icon_picture_grid_local'), "image/gif") 177 this.addFileMimeType("JPEG", MimeType.FILE_CATEGORY_IMAGE, FileMimeTypeUtil.FILE_TYPE_JPEG, 178 $r('app.media.hidisk_icon_picture'), $r('app.media.hidisk_icon_picture_grid'), $r('app.media.hidisk_icon_picture_grid_local'), "image/jpeg") 179 this.addFileMimeType("JPG", MimeType.FILE_CATEGORY_IMAGE, FileMimeTypeUtil.FILE_TYPE_JPG, 180 $r('app.media.hidisk_icon_picture'), $r('app.media.hidisk_icon_picture_grid'), $r('app.media.hidisk_icon_picture_grid_local'), "image/jpeg") 181 this.addFileMimeType("JPE", MimeType.FILE_CATEGORY_IMAGE, FileMimeTypeUtil.FILE_TYPE_JPEG, 182 $r('app.media.hidisk_icon_picture'), $r('app.media.hidisk_icon_picture_grid'), $r('app.media.hidisk_icon_picture_grid_local'), "image/jpeg") 183 this.addFileMimeType("CR2", MimeType.FILE_CATEGORY_IMAGE, FileMimeTypeUtil.FILE_TYPE_CR2, 184 $r('app.media.hidisk_icon_picture'), $r('app.media.hidisk_icon_picture_grid'), $r('app.media.hidisk_icon_picture_grid_local'), "image/cr2") 185 this.addFileMimeType("PSD", MimeType.FILE_CATEGORY_IMAGE, FileMimeTypeUtil.FILE_TYPE_PSD, 186 $r('app.media.hidisk_icon_picture'), $r('app.media.hidisk_icon_picture_grid'), $r('app.media.hidisk_icon_picture_grid_local'), "image/psd") 187 this.addFileMimeType("HEIC", MimeType.FILE_CATEGORY_IMAGE, FileMimeTypeUtil.FILE_TYPE_HEIC, 188 $r('app.media.hidisk_icon_picture'), $r('app.media.hidisk_icon_picture_grid'), $r('app.media.hidisk_icon_picture_grid_local'), "image/heif") 189 this.addFileMimeType("HEIF", MimeType.FILE_CATEGORY_IMAGE, FileMimeTypeUtil.FILE_TYPE_HEIC, 190 $r('app.media.hidisk_icon_picture'), $r('app.media.hidisk_icon_picture_grid'), $r('app.media.hidisk_icon_picture_grid_local'), "image/heif") 191 this.addFileMimeType("DNG", MimeType.FILE_CATEGORY_IMAGE, FileMimeTypeUtil.FILE_TYPE_RAW, 192 $r('app.media.hidisk_icon_picture'), $r('app.media.hidisk_icon_picture_grid'), $r('app.media.hidisk_icon_picture_grid_local'), "image/x-adobe-dng") 193 this.addFileMimeType("WEBP", MimeType.FILE_CATEGORY_IMAGE, FileMimeTypeUtil.FILE_TYPE_WEBP, 194 $r('app.media.hidisk_icon_picture'), $r('app.media.hidisk_icon_picture_grid'), $r('app.media.hidisk_icon_picture_grid_local'), "image/webp") 195 this.addFileMimeType("TIF", MimeType.FILE_CATEGORY_IMAGE, FileMimeTypeUtil.FILE_TYPE_TIF, 196 $r('app.media.hidisk_icon_picture'), $r('app.media.hidisk_icon_picture_grid'), $r('app.media.hidisk_icon_picture_grid_local'), "image/tiff") 197 this.addFileMimeType("ICO", MimeType.FILE_CATEGORY_IMAGE, FileMimeTypeUtil.FILE_TYPE_ICO, 198 $r('app.media.hidisk_icon_picture'), $r('app.media.hidisk_icon_picture_grid'), $r('app.media.hidisk_icon_picture_grid_local'), "image/x-icon") 199 this.addFileMimeType("ARW", MimeType.FILE_CATEGORY_IMAGE, FileMimeTypeUtil.FILE_TYPE_RAW, 200 $r('app.media.hidisk_icon_picture'), $r('app.media.hidisk_icon_picture_grid'), $r('app.media.hidisk_icon_picture_grid_local'), "image/x-sony-arw") 201 202 // 视频 203 this.addFileMimeType("RMVB", MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_RMVB, 204 $r('app.media.hidisk_icon_video'), $r('app.media.hidisk_icon_video_grid'), $r('app.media.hidisk_icon_video_grid_local'), "video/x-pn-realvideo") 205 this.addFileMimeType("M4U", MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_M4U, 206 $r('app.media.hidisk_icon_video'), $r('app.media.hidisk_icon_video_grid'), $r('app.media.hidisk_icon_video_grid_local'), "video/vnd.mpegurl") 207 this.addFileMimeType("M4V", MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_M4V, 208 $r('app.media.hidisk_icon_video'), $r('app.media.hidisk_icon_video_grid'), $r('app.media.hidisk_icon_video_grid_local'), "video/x-m4v") 209 this.addFileMimeType("MOV", MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_MOV, 210 $r('app.media.hidisk_icon_video'), $r('app.media.hidisk_icon_video_grid'), $r('app.media.hidisk_icon_video_grid_local'), "video/quicktime") 211 this.addFileMimeType("MP4", MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_MP4, 212 $r('app.media.hidisk_icon_video'), $r('app.media.hidisk_icon_video_grid'), $r('app.media.hidisk_icon_video_grid_local'), "video/mp4") 213 this.addFileMimeType("MPE", MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_MP4, 214 $r('app.media.hidisk_icon_video'), $r('app.media.hidisk_icon_video_grid'), $r('app.media.hidisk_icon_video_grid_local'), "video/mpeg") 215 this.addFileMimeType("MPEG", MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_MP2PS, 216 $r('app.media.hidisk_icon_video'), $r('app.media.hidisk_icon_video_grid'), $r('app.media.hidisk_icon_video_grid_local'), "video/mpeg") 217 this.addFileMimeType("MPG4", MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_MP4, 218 $r('app.media.hidisk_icon_video'), $r('app.media.hidisk_icon_video_grid'), $r('app.media.hidisk_icon_video_grid_local'), "video/mpeg") 219 this.addFileMimeType("MKV", MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_MKV, 220 $r('app.media.hidisk_icon_video'), $r('app.media.hidisk_icon_video_grid'), $r('app.media.hidisk_icon_video_grid_local'), "video/x-matroska") 221 this.addFileMimeType("WEBM", MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_WEBM, 222 $r('app.media.hidisk_icon_video'), $r('app.media.hidisk_icon_video_grid'), $r('app.media.hidisk_icon_video_grid_local'), "video/x-matroska") 223 this.addFileMimeType("3GPP", MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_3GPP, 224 $r('app.media.hidisk_icon_video'), $r('app.media.hidisk_icon_video_grid'), $r('app.media.hidisk_icon_video_grid_local'), "video/3gpp") 225 this.addFileMimeType("ASF", MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_ASF, 226 $r('app.media.hidisk_icon_video'), $r('app.media.hidisk_icon_video_grid'), $r('app.media.hidisk_icon_video_grid_local'), "video/x-ms-asf") 227 this.addFileMimeType("ASX", MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_ASF, 228 $r('app.media.hidisk_icon_video'), $r('app.media.hidisk_icon_video_grid'), $r('app.media.hidisk_icon_video_grid_local'), "video/x-ms-asf") 229 this.addFileMimeType("AVI", MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_AVI, 230 $r('app.media.hidisk_icon_video'), $r('app.media.hidisk_icon_video_grid'), $r('app.media.hidisk_icon_video_grid_local'), "video/x-msvideo") 231 this.addFileMimeType("FLV", MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_FLV, 232 $r('app.media.hidisk_icon_video'), $r('app.media.hidisk_icon_video_grid'), $r('app.media.hidisk_icon_video_grid_local'), "video/x-flv") 233 this.addFileMimeType("M2TS", MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_MP2PS, 234 $r('app.media.hidisk_icon_video'), $r('app.media.hidisk_icon_video_grid'), $r('app.media.hidisk_icon_video_grid_local'), "video/mpeg") 235 this.addFileMimeType("3G2", MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_3GPP2, 236 $r('app.media.hidisk_icon_video'), $r('app.media.hidisk_icon_video_grid'), $r('app.media.hidisk_icon_video_grid_local'), "video/3gpp2") 237 this.addFileMimeType("WMV", MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_WMV, 238 $r('app.media.hidisk_icon_video'), $r('app.media.hidisk_icon_video_grid'), $r('app.media.hidisk_icon_video_grid_local'), "video/x-ms-wmv") 239 this.addFileMimeType("MPG", MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_MP4, 240 $r('app.media.hidisk_icon_video'), $r('app.media.hidisk_icon_video_grid'), $r('app.media.hidisk_icon_video_grid_local'), "video/video/mp2p") 241 this.addFileMimeType("3GP", MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_3GPP, 242 $r('app.media.hidisk_icon_video'), $r('app.media.hidisk_icon_video_grid'), $r('app.media.hidisk_icon_video_grid_local'), "video/video/3gpp") 243 this.addFileMimeType("RV", MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_RV, 244 $r('app.media.hidisk_icon_video'), $r('app.media.hidisk_icon_video_grid'), $r('app.media.hidisk_icon_video_grid_local'), "video/x-pn-realvideo") 245 this.addFileMimeType("TS", MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_MP2TS, 246 $r('app.media.hidisk_icon_video'), $r('app.media.hidisk_icon_video_grid'), $r('app.media.hidisk_icon_video_grid_local'), "video/mp2ts") 247 this.addFileMimeType("DIVX", MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_DIVX, 248 $r('app.media.hidisk_icon_video'), $r('app.media.hidisk_icon_video_grid'), $r('app.media.hidisk_icon_video_grid_local'), "video/divx") 249 this.addFileMimeType("F4V", MimeType.FILE_CATEGORY_VIDEO, FileMimeTypeUtil.FILE_TYPE_F4V, 250 $r('app.media.hidisk_icon_video'), $r('app.media.hidisk_icon_video_grid'), $r('app.media.hidisk_icon_video_grid_local'), "video/x-f4v") 251 252 // 文档 253 this.addFileMimeType("DOCX", MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_WORD, 254 $r('app.media.hidisk_icon_doc'), $r('app.media.hidisk_icon_doc_grid'), $r('app.media.hidisk_icon_doc_grid_local'), "application/vnd.openxmlformats-officedocument.wordprocessingml.document") 255 this.addFileMimeType("DOC", MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_WORD, 256 $r('app.media.hidisk_icon_doc'), $r('app.media.hidisk_icon_doc_grid'), $r('app.media.hidisk_icon_doc_grid_local'), "application/msword") 257 this.addFileMimeType("DOCM", MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_WORD, 258 $r('app.media.hidisk_icon_doc'), $r('app.media.hidisk_icon_doc_grid'), $r('app.media.hidisk_icon_doc_grid_local'), "application/vnd.openxmlformats-officedocument.wordprocessingml.document") 259 this.addFileMimeType("DOTM", MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_WORD, 260 $r('app.media.hidisk_icon_doc'), $r('app.media.hidisk_icon_doc_grid'), $r('app.media.hidisk_icon_doc_grid_local'), "application/vnd.openxmlformats-officedocument.wordprocessingml.document") 261 this.addFileMimeType("WPT", MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_WORD, 262 $r('app.media.hidisk_icon_doc'), $r('app.media.hidisk_icon_doc_grid'), $r('app.media.hidisk_icon_doc_grid_local'), "application/wpt") 263 this.addFileMimeType("XLS", MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_EXCEL, 264 $r('app.media.hidisk_icon_xls'), $r('app.media.hidisk_icon_xls_grid'), $r('app.media.hidisk_icon_xls_grid_local'), "application/vnd.ms-excel") 265 this.addFileMimeType("XLSX", MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_EXCEL, 266 $r('app.media.hidisk_icon_xls'), $r('app.media.hidisk_icon_xls_grid'), $r('app.media.hidisk_icon_xls_grid_local'), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") 267 this.addFileMimeType("XLSM", MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_EXCEL, 268 $r('app.media.hidisk_icon_xls'), $r('app.media.hidisk_icon_xls_grid'), $r('app.media.hidisk_icon_xls_grid_local'), "application/vnd.ms-excel.sheet.macroEnabled.12") 269 this.addFileMimeType("XLTM", MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_EXCEL, 270 $r('app.media.hidisk_icon_xls'), $r('app.media.hidisk_icon_xls_grid'), $r('app.media.hidisk_icon_xls_grid_local'), "application/vnd.ms-excel.template.macroEnabled.12") 271 this.addFileMimeType("ET", MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_EXCEL, 272 $r('app.media.hidisk_icon_xls'), $r('app.media.hidisk_icon_xls_grid'), $r('app.media.hidisk_icon_xls_grid_local'), "application/et") 273 this.addFileMimeType("PPS", MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_POWERPOINT, 274 $r('app.media.hidisk_icon_ppt'), $r('app.media.hidisk_icon_ppt_grid'), $r('app.media.hidisk_icon_ppt_grid_local'), "application/vnd.ms-powerpoint") 275 this.addFileMimeType("PPT", MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_POWERPOINT, 276 $r('app.media.hidisk_icon_ppt'), $r('app.media.hidisk_icon_ppt_grid'), $r('app.media.hidisk_icon_ppt_grid_local'), "application/vnd.ms-powerpoint") 277 this.addFileMimeType("PPTX", MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_POWERPOINT, 278 $r('app.media.hidisk_icon_ppt'), $r('app.media.hidisk_icon_ppt_grid'), $r('app.media.hidisk_icon_ppt_grid_local'), "application/vnd.openxmlformats-officedocument.presentationml.presentation") 279 this.addFileMimeType("PPTM", MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_POWERPOINT, 280 $r('app.media.hidisk_icon_ppt'), $r('app.media.hidisk_icon_ppt_grid'), $r('app.media.hidisk_icon_ppt_grid_local'), "application/vnd.ms-powerpoint.presentation.macroEnabled.12") 281 this.addFileMimeType("PPSM", MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_POWERPOINT, 282 $r('app.media.hidisk_icon_ppt'), $r('app.media.hidisk_icon_ppt_grid'), $r('app.media.hidisk_icon_ppt_grid_local'), "application/vnd.ms-powerpoint.slideshow.macroEnabled.12") 283 this.addFileMimeType("POTM", MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_POWERPOINT, 284 $r('app.media.hidisk_icon_ppt'), $r('app.media.hidisk_icon_ppt_grid'), $r('app.media.hidisk_icon_ppt_grid_local'), "application/vnd.ms-powerpoint.presentation.macroEnabled.12") 285 this.addFileMimeType("DPS", MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_POWERPOINT, 286 $r('app.media.hidisk_icon_ppt'), $r('app.media.hidisk_icon_ppt_grid'), $r('app.media.hidisk_icon_ppt_grid_local'), "application/dps") 287 this.addFileMimeType("DPT", MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_POWERPOINT, 288 $r('app.media.hidisk_icon_ppt'), $r('app.media.hidisk_icon_ppt_grid'), $r('app.media.hidisk_icon_ppt_grid_local'), "application/dpt") 289 this.addFileMimeType("MSG", MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_UNKNOW, 290 $r('app.media.hidisk_icon_file'), $r('app.media.hidisk_icon_file_grid'), $r('app.media.hidisk_icon_file_grid_local'), "application/vnd.ms-outlook") 291 this.addFileMimeType("PDF", MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_PDF, 292 $r('app.media.hidisk_icon_pdf'), $r('app.media.hidisk_icon_pdf_grid'), $r('app.media.hidisk_icon_pdf_grid_local'), "application/pdf") 293 this.addFileMimeType("RTF", MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_WORD, 294 $r('app.media.hidisk_icon_doc'), $r('app.media.hidisk_icon_doc_grid'), $r('app.media.hidisk_icon_doc_grid_local'), "application/rtf") 295 this.addFileMimeType("WPS", MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_WORD, 296 $r('app.media.hidisk_icon_doc'), $r('app.media.hidisk_icon_doc_grid'), $r('app.media.hidisk_icon_doc_grid_local'), "application/vnd.ms-works") 297 this.addFileMimeType("XHTML", MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MORE_TEXT, 298 $r('app.media.hidisk_icon_xml'), $r('app.media.hidisk_icon_xml_grid'), $r('app.media.hidisk_icon_xml_grid_local'), "application/xhtml+xml") 299 this.addFileMimeType("MPC", MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_UNKNOW, 300 $r('app.media.hidisk_icon_unknown'), $r('app.media.hidisk_icon_unknown_grid'), $r('app.media.hidisk_icon_unknown_grid_local'), "application/vnd.mpohun.certificate") 301 this.addFileMimeType("JS", MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MORE_TEXT, 302 $r('app.media.hidisk_icon_file'), $r('app.media.hidisk_icon_file_grid'), $r('app.media.hidisk_icon_file_grid_local'), "application/x-javascript") 303 this.addFileMimeType("C", MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MORE_TEXT, 304 $r('app.media.hidisk_icon_file'), $r('app.media.hidisk_icon_file_grid'), $r('app.media.hidisk_icon_file_grid_local'), "text/plain") 305 this.addFileMimeType("CONF", MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MORE_TEXT, 306 $r('app.media.hidisk_icon_file'), $r('app.media.hidisk_icon_file_grid'), $r('app.media.hidisk_icon_file_grid_local'), "text/plain") 307 this.addFileMimeType("CPP", MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MORE_TEXT, 308 $r('app.media.hidisk_icon_file'), $r('app.media.hidisk_icon_file_grid'), $r('app.media.hidisk_icon_file_grid_local'), "text/plain") 309 this.addFileMimeType("H", MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MORE_TEXT, 310 $r('app.media.hidisk_icon_file'), $r('app.media.hidisk_icon_file_grid'), $r('app.media.hidisk_icon_file_grid_local'), "text/plain") 311 this.addFileMimeType("HTM", MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_HTML, 312 $r('app.media.hidisk_icon_html'), $r('app.media.hidisk_icon_html_grid'), $r('app.media.hidisk_icon_html_grid_local'), "text/html") 313 this.addFileMimeType("HTML", MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_HTML, 314 $r('app.media.hidisk_icon_html'), $r('app.media.hidisk_icon_html_grid'), $r('app.media.hidisk_icon_html_grid_local'), "text/html") 315 this.addFileMimeType("JAVA", MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MORE_TEXT, 316 $r('app.media.hidisk_icon_file'), $r('app.media.hidisk_icon_file_grid'), $r('app.media.hidisk_icon_file_grid_local'), "text/plain") 317 this.addFileMimeType("LOG", MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MORE_TEXT, 318 $r('app.media.hidisk_icon_log'), $r('app.media.hidisk_icon_log_grid'), $r('app.media.hidisk_icon_log_grid_local'), "text/plain") 319 this.addFileMimeType("PROP", MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MORE_TEXT, 320 $r('app.media.hidisk_icon_file'), $r('app.media.hidisk_icon_file_grid'), $r('app.media.hidisk_icon_file_grid_local'), "text/plain") 321 this.addFileMimeType("RC", MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MORE_TEXT, 322 $r('app.media.hidisk_icon_file'), $r('app.media.hidisk_icon_file_grid'), $r('app.media.hidisk_icon_file_grid_local'), "text/plain") 323 this.addFileMimeType("SH", MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MORE_TEXT, 324 $r('app.media.hidisk_icon_file'), $r('app.media.hidisk_icon_file_grid'), $r('app.media.hidisk_icon_file_grid_local'), "text/plain") 325 this.addFileMimeType("TXT", MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_TEXT, 326 $r('app.media.hidisk_icon_text'), $r('app.media.hidisk_icon_text_grid'), $r('app.media.hidisk_icon_text_grid_local'), "text/plain") 327 this.addFileMimeType("XML", MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_XML, 328 $r('app.media.hidisk_icon_xml'), $r('app.media.hidisk_icon_xml_grid'), $r('app.media.hidisk_icon_xml_grid_local'), "text/plain") 329 this.addFileMimeType("SUB", MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MORE_TEXT, 330 $r('app.media.hidisk_icon_file'), $r('app.media.hidisk_icon_file_grid'), $r('app.media.hidisk_icon_file_grid_local'), "text/x-subviewer") 331 this.addFileMimeType("ASS", MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MORE_TEXT, 332 $r('app.media.hidisk_icon_file'), $r('app.media.hidisk_icon_file_grid'), $r('app.media.hidisk_icon_file_grid_local'), "text/x-ssa") 333 this.addFileMimeType("SSA", MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MORE_TEXT, 334 $r('app.media.hidisk_icon_file'), $r('app.media.hidisk_icon_file_grid'), $r('app.media.hidisk_icon_file_grid_local'), "text/x-ssa") 335 this.addFileMimeType("JAD", MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MORE_TEXT, 336 $r('app.media.hidisk_icon_file'), $r('app.media.hidisk_icon_file_grid'), $r('app.media.hidisk_icon_file_grid_local'), "text/vnd.sun.j2me.app-descriptor") 337 this.addFileMimeType("DHTML", MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_HTML, 338 $r('app.media.hidisk_icon_html'), $r('app.media.hidisk_icon_html_grid'), $r('app.media.hidisk_icon_html_grid_local'), "text/html") 339 this.addFileMimeType("SHTML", MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_HTML, 340 $r('app.media.hidisk_icon_html'), $r('app.media.hidisk_icon_html_grid'), $r('app.media.hidisk_icon_html_grid_local'), "text/html") 341 this.addFileMimeType("TEXT", MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_TEXT, 342 $r('app.media.hidisk_icon_text'), $r('app.media.hidisk_icon_text_grid'), $r('app.media.hidisk_icon_text_grid_local'), "text/plain") 343 this.addFileMimeType("INI", MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MORE_TEXT, 344 $r('app.media.hidisk_icon_file'), $r('app.media.hidisk_icon_file_grid'), $r('app.media.hidisk_icon_file_grid_local'), "text/plain") 345 this.addFileMimeType("VCS", MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MORE_TEXT, 346 $r('app.media.hidisk_icon_file'), $r('app.media.hidisk_icon_file_grid'), $r('app.media.hidisk_icon_file_grid_local'), "text/x-vcalendar") 347 this.addFileMimeType("ICS", MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MORE_TEXT, 348 $r('app.media.hidisk_icon_file'), $r('app.media.hidisk_icon_file_grid'), $r('app.media.hidisk_icon_file_grid_local'), "text/calendar") 349 this.addFileMimeType("JSP", MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MORE_TEXT, 350 $r('app.media.hidisk_icon_file'), $r('app.media.hidisk_icon_file_grid'), $r('app.media.hidisk_icon_file_grid_local'), "text/html") 351 this.addFileMimeType("ASP", MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MORE_TEXT, 352 $r('app.media.hidisk_icon_file'), $r('app.media.hidisk_icon_file_grid'), $r('app.media.hidisk_icon_file_grid_local'), "text/html") 353 this.addFileMimeType("PHP", MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MORE_TEXT, 354 $r('app.media.hidisk_icon_file'), $r('app.media.hidisk_icon_file_grid'), $r('app.media.hidisk_icon_file_grid_local'), "text/html") 355 this.addFileMimeType("DOTX", MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_WORD, 356 $r('app.media.hidisk_icon_doc'), $r('app.media.hidisk_icon_doc_grid'), $r('app.media.hidisk_icon_doc_grid_local'), "application/vnd.openxmlformats-officedocument.wordprocessingml.template") 357 this.addFileMimeType("DOT", MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_WORD, 358 $r('app.media.hidisk_icon_doc'), $r('app.media.hidisk_icon_doc_grid'), $r('app.media.hidisk_icon_doc_grid_local'), "application/msword") 359 this.addFileMimeType("XLT", MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_EXCEL, 360 $r('app.media.hidisk_icon_xls'), $r('app.media.hidisk_icon_xls_grid'), $r('app.media.hidisk_icon_xls_grid_local'), "application/vnd.ms-excel") 361 this.addFileMimeType("XLTX", MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_EXCEL, 362 $r('app.media.hidisk_icon_xls'), $r('app.media.hidisk_icon_xls_grid'), $r('app.media.hidisk_icon_xls_grid_local'), "application/vnd.openxmlformats-officedocument.spreadsheetml.template") 363 this.addFileMimeType("CSV", MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_EXCEL, 364 $r('app.media.hidisk_icon_xls'), $r('app.media.hidisk_icon_xls_grid'), $r('app.media.hidisk_icon_xls_grid_local'), "text/comma-separated-values") 365 this.addFileMimeType("POT", MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_POWERPOINT, 366 $r('app.media.hidisk_icon_ppt'), $r('app.media.hidisk_icon_ppt_grid'), $r('app.media.hidisk_icon_ppt_grid_local'), "application/vnd.ms-powerpoint") 367 this.addFileMimeType("POTX", MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_POWERPOINT, 368 $r('app.media.hidisk_icon_ppt'), $r('app.media.hidisk_icon_ppt_grid'), $r('app.media.hidisk_icon_ppt_grid_local'), "application/vnd.openxmlformats-officedocument.presentationml.template") 369 this.addFileMimeType("PPSX", MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_MS_POWERPOINT, 370 $r('app.media.hidisk_icon_ppt'), $r('app.media.hidisk_icon_ppt_grid'), $r('app.media.hidisk_icon_ppt_grid_local'), "application/vnd.openxmlformats-officedocument.presentationml.slideshow") 371 this.addFileMimeType("VCF", MimeType.FILE_CATEGORY_TXT, FileMimeTypeUtil.FILE_TYPE_VCF, 372 $r('app.media.hidisk_icon_vcard'), $r('app.media.hidisk_icon_vcard_grid'), $r('app.media.hidisk_icon_vcard_grid_local'), "text/x-vcard") 373 374 // 音频 375 this.addFileMimeType("3GPP2", MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_3GPP2, 376 $r('app.media.hidisk_icon_video'), $r('app.media.hidisk_icon_video_grid'), $r('app.media.hidisk_icon_video_grid_local'), "audio/3gpp2") 377 this.addFileMimeType("IMY", MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_IMY, 378 $r('app.media.hidisk_icon_music'), $r('app.media.hidisk_icon_audio_grid'), $r('app.media.hidisk_icon_audio_grid_local'), "audio/imelody") 379 this.addFileMimeType("AAC", MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_AAC, 380 $r('app.media.hidisk_icon_music'), $r('app.media.hidisk_icon_audio_grid'), $r('app.media.hidisk_icon_audio_grid_local'), "audio/aac") 381 this.addFileMimeType("AMR", MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_AMR, 382 $r('app.media.hidisk_icon_music_amr'), $r('app.media.hidisk_icon_audio_amr_grid'), $r('app.media.hidisk_icon_audio_amr_grid_local'), "audio/amr") 383 this.addFileMimeType("MID", MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_MID, 384 $r('app.media.hidisk_icon_music'), $r('app.media.hidisk_icon_audio_grid'), $r('app.media.hidisk_icon_audio_grid_local'), "audio/midi") 385 this.addFileMimeType("MPGA", MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_MPGA, 386 $r('app.media.hidisk_icon_music'), $r('app.media.hidisk_icon_audio_grid'), $r('app.media.hidisk_icon_audio_grid_local'), "audio/mpeg") 387 this.addFileMimeType("MXMF", MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_MXMF, 388 $r('app.media.hidisk_icon_music'), $r('app.media.hidisk_icon_audio_grid'), $r('app.media.hidisk_icon_audio_grid_local'), "audio/mobile-xmf") 389 this.addFileMimeType("RTTTL", MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_MID, 390 $r('app.media.hidisk_icon_music'), $r('app.media.hidisk_icon_audio_grid'), $r('app.media.hidisk_icon_audio_grid_local'), "audio/midi") 391 this.addFileMimeType("RTX", MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_MID, 392 $r('app.media.hidisk_icon_music'), $r('app.media.hidisk_icon_audio_grid'), $r('app.media.hidisk_icon_audio_grid_local'), "audio/midi") 393 this.addFileMimeType("SMF", MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_SMF, 394 $r('app.media.hidisk_icon_music'), $r('app.media.hidisk_icon_audio_grid'), $r('app.media.hidisk_icon_audio_grid_local'), "audio/sp-midi") 395 this.addFileMimeType("WAV", MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_WAV, 396 $r('app.media.hidisk_icon_music_wav'), $r('app.media.hidisk_icon_audio_wav_grid'), $r('app.media.hidisk_icon_audio_wav_grid_local'), "audio/x-wav") 397 this.addFileMimeType("WMA", MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_WMA, 398 $r('app.media.hidisk_icon_music_wma'), $r('app.media.hidisk_icon_audio_wma_grid'), $r('app.media.hidisk_icon_audio_wma_grid_local'), "audio/x-ms-wma") 399 this.addFileMimeType("OTA", MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_MID, 400 $r('app.media.hidisk_icon_music'), $r('app.media.hidisk_icon_audio_grid'), $r('app.media.hidisk_icon_audio_grid_local'), "audio/midi") 401 this.addFileMimeType("XMF", MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_MID, 402 $r('app.media.hidisk_icon_music'), $r('app.media.hidisk_icon_audio_grid'), $r('app.media.hidisk_icon_audio_grid_local'), "audio/midi") 403 this.addFileMimeType("OGG", MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_OGG, 404 $r('app.media.hidisk_icon_music'), $r('app.media.hidisk_icon_audio_grid'), $r('app.media.hidisk_icon_audio_grid_local'), "audio/ogg") 405 this.addFileMimeType("PLS", MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_PLS, 406 $r('app.media.hidisk_icon_music'), $r('app.media.hidisk_icon_audio_grid'), $r('app.media.hidisk_icon_audio_grid_local'), "audio/x-scpls") 407 this.addFileMimeType("RA", MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_RA, 408 $r('app.media.hidisk_icon_music'), $r('app.media.hidisk_icon_audio_grid'), $r('app.media.hidisk_icon_audio_grid_local'), "audio/x-pn-realaudio") 409 this.addFileMimeType("RAM", MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_RAM, 410 $r('app.media.hidisk_icon_music'), $r('app.media.hidisk_icon_audio_grid'), $r('app.media.hidisk_icon_audio_grid_local'), "audio/x-pn-realaudio") 411 this.addFileMimeType("MIDI", MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_MID, 412 $r('app.media.hidisk_icon_music'), $r('app.media.hidisk_icon_audio_grid'), $r('app.media.hidisk_icon_audio_grid_local'), "audio/midi") 413 this.addFileMimeType("M3U", MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_M3U, 414 $r('app.media.hidisk_icon_music'), $r('app.media.hidisk_icon_audio_grid'), $r('app.media.hidisk_icon_audio_grid_local'), "audio/x-mpegurl") 415 this.addFileMimeType("M4A", MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_M4A, 416 $r('app.media.hidisk_icon_music_m4a'), $r('app.media.hidisk_icon_audio_m4a_grid'), $r('app.media.hidisk_icon_audio_m4a_grid_local'), "audio/mp4a-latm") 417 this.addFileMimeType("M4B", MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_MP4A, 418 $r('app.media.hidisk_icon_music'), $r('app.media.hidisk_icon_audio_grid'), $r('app.media.hidisk_icon_audio_grid_local'), "audio/mp4a-latm") 419 this.addFileMimeType("M4P", MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_MP4A, 420 $r('app.media.hidisk_icon_music'), $r('app.media.hidisk_icon_audio_grid'), $r('app.media.hidisk_icon_audio_grid_local'), "audio/mp4a-latm") 421 this.addFileMimeType("AWB", MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_AWB, 422 $r('app.media.hidisk_icon_music'), $r('app.media.hidisk_icon_audio_grid'), $r('app.media.hidisk_icon_audio_grid_local'), "audio/amr-wb") 423 this.addFileMimeType("MP2", MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_MP2, 424 $r('app.media.hidisk_icon_music'), $r('app.media.hidisk_icon_audio_grid'), $r('app.media.hidisk_icon_audio_grid_local'), "audio/x-mpeg") 425 this.addFileMimeType("MP3", MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_MP3, 426 $r('app.media.hidisk_icon_music_mp3'), $r('app.media.hidisk_icon_audio_mp3_grid'), $r('app.media.hidisk_icon_audio_mp3_grid_local'), "audio/x-mpeg") 427 this.addFileMimeType("AU", MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_AU, 428 $r('app.media.hidisk_icon_music'), $r('app.media.hidisk_icon_audio_grid'), $r('app.media.hidisk_icon_audio_grid_local'), "audio/basic") 429 this.addFileMimeType("OGA", MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_OGG, 430 $r('app.media.hidisk_icon_music'), $r('app.media.hidisk_icon_audio_grid'), $r('app.media.hidisk_icon_audio_grid_local'), "application/ogg") 431 this.addFileMimeType("WPL", MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_WPL, 432 $r('app.media.hidisk_icon_music'), $r('app.media.hidisk_icon_audio_grid'), $r('app.media.hidisk_icon_audio_grid_local'), "application/vnd.ms-wpl") 433 this.addFileMimeType("AC3", MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_AC3, 434 $r('app.media.hidisk_icon_music'), $r('app.media.hidisk_icon_audio_grid'), $r('app.media.hidisk_icon_audio_grid_local'), "audio/ac3") 435 this.addFileMimeType("MKA", MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_MKA, 436 $r('app.media.hidisk_icon_music'), $r('app.media.hidisk_icon_audio_grid'), $r('app.media.hidisk_icon_audio_grid_local'), "audio/x-matroska") 437 this.addFileMimeType("FLAC", MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_FLAC, 438 $r('app.media.hidisk_icon_music_flac'), $r('app.media.hidisk_icon_audio_flac_grid'), $r('app.media.hidisk_icon_audio_flac_grid_local'), "audio/flac") 439 this.addFileMimeType("AIF", MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_AIFF, 440 $r('app.media.hidisk_icon_music'), $r('app.media.hidisk_icon_audio_grid'), $r('app.media.hidisk_icon_audio_grid_local'), "audio/x-aiff") 441 this.addFileMimeType("AIFF", MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_AIFF, 442 $r('app.media.hidisk_icon_music'), $r('app.media.hidisk_icon_audio_grid'), $r('app.media.hidisk_icon_audio_grid_local'), "audio/x-aiff") 443 this.addFileMimeType("AIFC", MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_AIFF, 444 $r('app.media.hidisk_icon_music'), $r('app.media.hidisk_icon_audio_grid'), $r('app.media.hidisk_icon_audio_grid_local'), "audio/x-aiff") 445 this.addFileMimeType("APE", MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_APE, 446 $r('app.media.hidisk_icon_music_ape'), $r('app.media.hidisk_icon_audio_ape_grid'), $r('app.media.hidisk_icon_audio_ape_grid_local'), "audio/x-ape") 447 this.addFileMimeType("RM", MimeType.FILE_CATEGORY_AUDIO, FileMimeTypeUtil.FILE_TYPE_RM_AUDIO, 448 $r('app.media.hidisk_icon_music'), $r('app.media.hidisk_icon_audio_grid'), $r('app.media.hidisk_icon_audio_grid_local'), "audio/x-pn-realaudio") 449 450 // 压缩包 451 this.addFileMimeType("GTAR", MimeType.FILE_CATEGORY_ZIP, FileMimeTypeUtil.FILE_TYPE_ZIP, 452 $r('app.media.hidisk_icon_compressed_files'), $r('app.media.hidisk_icon_compress_grid'), $r('app.media.hidisk_icon_compress_grid_local'), "application/x-gtar") 453 this.addFileMimeType("RAR", MimeType.FILE_CATEGORY_ZIP, FileMimeTypeUtil.FILE_TYPE_RAR, 454 $r('app.media.hidisk_icon_rar'), $r('app.media.hidisk_icon_rar_grid'), $r('app.media.hidisk_icon_rar_grid_local'), "application/x-rar-compressed") 455 this.addFileMimeType("TAR", MimeType.FILE_CATEGORY_ZIP, FileMimeTypeUtil.FILE_TYPE_TAR, 456 $r('app.media.hidisk_icon_compressed_files'), $r('app.media.hidisk_icon_compress_grid'), $r('app.media.hidisk_icon_compress_grid_local'), "application/x-tar") 457 this.addFileMimeType("TGZ", MimeType.FILE_CATEGORY_ZIP, FileMimeTypeUtil.FILE_TYPE_TGZ, 458 $r('app.media.hidisk_icon_compressed_files'), $r('app.media.hidisk_icon_compress_grid'), $r('app.media.hidisk_icon_compress_grid_local'), "application/x-compressed") 459 this.addFileMimeType("Z", MimeType.FILE_CATEGORY_ZIP, FileMimeTypeUtil.FILE_TYPE_Z, 460 $r('app.media.hidisk_icon_compressed_files'), $r('app.media.hidisk_icon_compress_grid'), $r('app.media.hidisk_icon_compress_grid_local'), "application/x-compressed") 461 this.addFileMimeType("ZIP", MimeType.FILE_CATEGORY_ZIP, FileMimeTypeUtil.FILE_TYPE_ZIP, 462 $r('app.media.hidisk_icon_zip'), $r('app.media.hidisk_icon_zip_grid'), $r('app.media.hidisk_icon_zip_grid_local'), "application/zip") 463 this.addFileMimeType("JAR", MimeType.FILE_CATEGORY_ZIP, FileMimeTypeUtil.FILE_TYPE_JAR, 464 $r('app.media.hidisk_icon_compressed_files'), $r('app.media.hidisk_icon_compress_grid'), $r('app.media.hidisk_icon_compress_grid_local'), "text/vnd.sun.j2me.app-descriptor") 465 this.addFileMimeType("GZ", MimeType.FILE_CATEGORY_ZIP, FileMimeTypeUtil.FILE_TYPE_GZ, 466 $r('app.media.hidisk_icon_compressed_files'), $r('app.media.hidisk_icon_compress_grid'), $r('app.media.hidisk_icon_compress_grid_local'), "application/x-gzip") 467 this.addFileMimeType("BZ", MimeType.FILE_CATEGORY_ZIP, FileMimeTypeUtil.FILE_TYPE_BZ, 468 $r('app.media.hidisk_icon_compressed_files'), $r('app.media.hidisk_icon_compress_grid'), $r('app.media.hidisk_icon_compress_grid_local'), "application/x-bzip") 469 this.addFileMimeType("BZ2", MimeType.FILE_CATEGORY_ZIP, FileMimeTypeUtil.FILE_TYPE_BZ2, 470 $r('app.media.hidisk_icon_compressed_files'), $r('app.media.hidisk_icon_compress_grid'), $r('app.media.hidisk_icon_compress_grid_local'), "application/x-bzip2") 471 this.addFileMimeType("7Z", MimeType.FILE_CATEGORY_ZIP, FileMimeTypeUtil.FILE_TYPE_7Z, 472 $r('app.media.hidisk_icon_7z'), $r('app.media.hidisk_icon_7z_grid'), $r('app.media.hidisk_icon_7z_grid_local'), "application/x-7z-compressed") 473 474 // 安装包 475 this.addFileMimeType("APK", MimeType.FILE_CATEGORY_PKG, FileMimeTypeUtil.FILE_TYPE_APK, 476 $r('app.media.hidisk_icon_application'), $r('app.media.hidisk_icon_application_grid'), $r('app.media.hidisk_icon_application_grid_local'), "application/vnd.android.package-archive") 477 this.addFileMimeType("HAP", MimeType.FILE_CATEGORY_PKG, FileMimeTypeUtil.FILE_TYPE_HAP, 478 $r('app.media.hidisk_icon_application'), $r('app.media.hidisk_icon_application_grid'), $r('app.media.hidisk_icon_application_grid_local'), "file/*") 479 480 // 未知 481 this.addFileMimeType("EXE", MimeType.FILE_CATEGORY_UNKNOW, FileMimeTypeUtil.FILE_TYPE_UNKNOW, 482 $r('app.media.hidisk_icon_unknown'), $r('app.media.hidisk_icon_unknown_grid'), $r('app.media.hidisk_icon_unknown_grid_local'), "application/octet-stream") 483 this.addFileMimeType("BIN", MimeType.FILE_CATEGORY_UNKNOW, FileMimeTypeUtil.FILE_TYPE_UNKNOW, 484 $r('app.media.hidisk_icon_unknown'), $r('app.media.hidisk_icon_unknown_grid'), $r('app.media.hidisk_icon_unknown_grid_local'), "application/octet-stream") 485 this.addFileMimeType("CLASS", MimeType.FILE_CATEGORY_UNKNOW, FileMimeTypeUtil.FILE_TYPE_UNKNOW, 486 $r('app.media.hidisk_icon_unknown'), $r('app.media.hidisk_icon_unknown_grid'), $r('app.media.hidisk_icon_unknown_grid_local'), "application/octet-stream") 487 this.addFileMimeType("RAW", MimeType.FILE_CATEGORY_UNKNOW, FileMimeTypeUtil.FILE_TYPE_UNKNOW, 488 $r('app.media.hidisk_icon_unknown'), $r('app.media.hidisk_icon_unknown_grid'), $r('app.media.hidisk_icon_unknown_grid_local'), "application/octet-stream") 489 this.addFileMimeType("EPUB", MimeType.FILE_CATEGORY_UNKNOW, FileMimeTypeUtil.FILE_TYPE_UNKNOW, 490 $r('app.media.hidisk_icon_unknown'), $r('app.media.hidisk_icon_unknown_grid'), $r('app.media.hidisk_icon_unknown_grid_local'), "application/epub+zip") 491 this.addFileMimeType("EBK3", MimeType.FILE_CATEGORY_UNKNOW, FileMimeTypeUtil.FILE_TYPE_UNKNOW, 492 $r('app.media.hidisk_icon_unknown'), $r('app.media.hidisk_icon_unknown_grid'), $r('app.media.hidisk_icon_unknown_grid_local'), "application/x-expandedbook") 493 this.addFileMimeType("SAMI", MimeType.FILE_CATEGORY_UNKNOW, FileMimeTypeUtil.FILE_TYPE_UNKNOW, 494 $r('app.media.hidisk_icon_unknown'), $r('app.media.hidisk_icon_unknown_grid'), $r('app.media.hidisk_icon_unknown_grid_local'), "application/x-sami") 495 this.addFileMimeType("SMI", MimeType.FILE_CATEGORY_UNKNOW, FileMimeTypeUtil.FILE_TYPE_UNKNOW, 496 $r('app.media.hidisk_icon_unknown'), $r('app.media.hidisk_icon_unknown_grid'), $r('app.media.hidisk_icon_unknown_grid_local'), "application/x-sami") 497 this.addFileMimeType("STR", MimeType.FILE_CATEGORY_UNKNOW, FileMimeTypeUtil.FILE_TYPE_UNKNOW, 498 $r('app.media.hidisk_icon_unknown'), $r('app.media.hidisk_icon_unknown_grid'), $r('app.media.hidisk_icon_unknown_grid_local'), "application/x-subrip") 499 this.addFileMimeType("SWF", MimeType.FILE_CATEGORY_UNKNOW, FileMimeTypeUtil.FILE_TYPE_UNKNOW, 500 $r('app.media.hidisk_icon_unknown'), $r('app.media.hidisk_icon_unknown_grid'), $r('app.media.hidisk_icon_unknown_grid_local'), "application/x-shockwave-flash") 501 this.addFileMimeType("CAB", MimeType.FILE_CATEGORY_UNKNOW, FileMimeTypeUtil.FILE_TYPE_UNKNOW, 502 $r('app.media.hidisk_icon_unknown'), $r('app.media.hidisk_icon_unknown_grid'), $r('app.media.hidisk_icon_unknown_grid_local'), "application/x-shockwave-flash") 503 this.addFileMimeType("CHM", MimeType.FILE_CATEGORY_UNKNOW, FileMimeTypeUtil.FILE_TYPE_UNKNOW, 504 $r('app.media.hidisk_icon_chm'), $r('app.media.hidisk_icon_chm_grid'), $r('app.media.hidisk_icon_chm_grid_local'), "application/x-chm") 505 this.addFileMimeType("UMD", MimeType.FILE_CATEGORY_UNKNOW, FileMimeTypeUtil.FILE_TYPE_UNKNOW, 506 $r('app.media.hidisk_icon_unknown'), $r('app.media.hidisk_icon_unknown_grid'), $r('app.media.hidisk_icon_unknown_grid_local'), "application/umd") 507 this.addFileMimeType("PDB", MimeType.FILE_CATEGORY_UNKNOW, FileMimeTypeUtil.FILE_TYPE_UNKNOW, 508 $r('app.media.hidisk_icon_unknown'), $r('app.media.hidisk_icon_unknown_grid'), $r('app.media.hidisk_icon_unknown_grid_local'), "application/ebook") 509 this.addFileMimeType("DCF", MimeType.FILE_CATEGORY_UNKNOW, FileMimeTypeUtil.FILE_TYPE_UNKNOW, 510 $r('app.media.hidisk_icon_unknown'), $r('app.media.hidisk_icon_unknown_grid'), $r('app.media.hidisk_icon_unknown_grid_local'), "application/vnd.oma.drm.content") 511 this.addFileMimeType("K3G", MimeType.FILE_CATEGORY_UNKNOW, FileMimeTypeUtil.FILE_TYPE_UNKNOW, 512 $r('app.media.hidisk_icon_unknown'), $r('app.media.hidisk_icon_unknown_grid'), $r('app.media.hidisk_icon_unknown_grid_local'), "application/octet-stream") 513 this.addFileMimeType("MPO", MimeType.FILE_CATEGORY_UNKNOW, FileMimeTypeUtil.FILE_TYPE_UNKNOW, 514 $r('app.media.hidisk_icon_unknown'), $r('app.media.hidisk_icon_unknown_grid'), $r('app.media.hidisk_icon_unknown_grid_local'), "application/octet-stream") 515 this.addFileMimeType("MMF", MimeType.FILE_CATEGORY_UNKNOW, FileMimeTypeUtil.FILE_TYPE_MMF, 516 $r('app.media.hidisk_icon_unknown'), $r('app.media.hidisk_icon_unknown_grid'), $r('app.media.hidisk_icon_unknown_grid_local'), "application/vnd.smaf") 517 this.addFileMimeType("QCP", MimeType.FILE_CATEGORY_UNKNOW, FileMimeTypeUtil.FILE_TYPE_QCP, 518 $r('app.media.hidisk_icon_unknown'), $r('app.media.hidisk_icon_unknown_grid'), $r('app.media.hidisk_icon_unknown_grid_local'), "application/octet-stream") 519 } 520 521 private static getFileMiMeTypeMap(): Map<string, MimeType> { 522 if (FileMimeTypeUtil.fileMimeTypeMap.size === 0) { 523 FileMimeTypeUtil.setFileMimeTypeMap() 524 } 525 return FileMimeTypeUtil.fileMimeTypeMap 526 } 527 528 public static getFileMimeType(fileName: string): MimeType { 529 if (StringUtil.isEmpty(fileName)) { 530 return FileMimeTypeUtil.UNKNOW_MIMETYPE 531 } 532 533 const splitList = fileName.split('.') 534 if (splitList.length < 2) { 535 return FileMimeTypeUtil.UNKNOW_MIMETYPE 536 } 537 538 let suffix = splitList[splitList.length-1].toUpperCase() 539 // 判断DLP加密文件 540 if (suffix === FileMimeTypeUtil.SUFFIX_DLP) { 541 if (splitList.length === 2) { 542 return FileMimeTypeUtil.UNKNOW_MIMETYPE 543 } 544 suffix = splitList[splitList.length-2].toUpperCase() 545 } 546 const fileMiMeTypeMap = this.getFileMiMeTypeMap() 547 const mimeType: MimeType = fileMiMeTypeMap.get(suffix) 548 if (!mimeType) { 549 return FileMimeTypeUtil.UNKNOW_MIMETYPE 550 } 551 return mimeType 552 } 553 554 public static getFileSuffix(fileName: string): String { 555 const unKnown: string = ''; 556 if (StringUtil.isEmpty(fileName)) { 557 return unKnown; 558 } 559 560 const splitList = fileName.split('.') 561 if (splitList.length < 2) { 562 return unKnown; 563 } 564 565 let suffix = splitList[splitList.length-1].toUpperCase() 566 // 判断DLP加密文件 567 if (suffix === FileMimeTypeUtil.SUFFIX_DLP) { 568 if (splitList.length === 2) { 569 return unKnown; 570 } 571 suffix = splitList[splitList.length-2].toUpperCase() 572 } 573 return suffix 574 } 575 576 public static getFileTypeOrder(fileName: string): number { 577 const mimeType = this.getFileMimeType(fileName) 578 return mimeType.getFileTypeSort() 579 } 580} 581 582export default FileMimeTypeUtil 583 584 585