diff --git a/src/main/utils/file.ts b/src/main/utils/file.ts index 20e89fe4..e447b0b9 100644 --- a/src/main/utils/file.ts +++ b/src/main/utils/file.ts @@ -6,14 +6,24 @@ import { FileType, FileTypes } from '@types' import { app } from 'electron' import { v4 as uuidv4 } from 'uuid' +// 创建文件类型映射表,提高查找效率 +const fileTypeMap = new Map() + +// 初始化映射表 +function initFileTypeMap() { + imageExts.forEach((ext) => fileTypeMap.set(ext, FileTypes.IMAGE)) + videoExts.forEach((ext) => fileTypeMap.set(ext, FileTypes.VIDEO)) + audioExts.forEach((ext) => fileTypeMap.set(ext, FileTypes.AUDIO)) + textExts.forEach((ext) => fileTypeMap.set(ext, FileTypes.TEXT)) + documentExts.forEach((ext) => fileTypeMap.set(ext, FileTypes.DOCUMENT)) +} + +// 初始化映射表 +initFileTypeMap() + export function getFileType(ext: string): FileTypes { ext = ext.toLowerCase() - if (imageExts.includes(ext)) return FileTypes.IMAGE - if (videoExts.includes(ext)) return FileTypes.VIDEO - if (audioExts.includes(ext)) return FileTypes.AUDIO - if (textExts.includes(ext)) return FileTypes.TEXT - if (documentExts.includes(ext)) return FileTypes.DOCUMENT - return FileTypes.OTHER + return fileTypeMap.get(ext) || FileTypes.OTHER } export function getAllFiles(dirPath: string, arrayOfFiles: FileType[] = []): FileType[] {