From 7fb6fcdeeb7cb279fc80c6904c636d557978d7dc Mon Sep 17 00:00:00 2001 From: Hao He <57698783+Harris-H@users.noreply.github.com> Date: Mon, 10 Mar 2025 11:47:09 +0800 Subject: [PATCH] Fix/improve file utils (#3116) * Enhance update error logging and fix duplicate type import - Improve error logging in AppUpdater with more detailed error information and timestamps - Remove duplicate MCPServer type import in Inputbar component * fix: ensure directory existence and optimize file operations --- src/main/utils/file.ts | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) 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[] {