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