# FileSystem.vue 组件结构分析

## 组件规模
- **总行数**：2436 行
- **模板**：355 行
- **脚本**：2081 行
- **样式**：710 行

## 功能模块分析

### 1. 状态管理（~200行）
- 文件路径、内容、列表
- ZIP 浏览状态
- 媒体预览状态
- 编辑器状态
- UI 状态（侧边栏、面板宽度等）

### 2. 文件浏览功能（~300行）
- listDirectory - 列出目录
- selectFile - 选择文件
- openPath - 打开路径
- browseDirectory - 浏览目录

### 3. ZIP 浏览功能（~400行）
- enterZipMode - 进入 ZIP 模式
- listZipDirectory - 列出 ZIP 目录
- readZipFile - 读取 ZIP 文件
- exitZipMode - 退出 ZIP 模式

### 4. 媒体预览功能（~600行）
- previewImage - 图片预览
- previewVideo - 视频预览
- previewAudio - 音频预览
- previewPdf - PDF 预览
- previewHtml - HTML 预览/编辑（~200行）
- previewMarkdown - Markdown 预览/编辑（~100行）
- extractHtmlStyles - HTML 样式提取（~150行）

### 5. 文件操作（~200行）
- readFile - 读取文件
- writeFile - 写入文件
- deleteFile - 删除文件
- clearContent - 清空内容

### 6. 收藏夹管理（~100行）
- toggleFavorite - 切换收藏
- removeFavorite - 移除收藏
- openFavoriteFile - 打开收藏

### 7. 拖拽调整（~100行）
- startResize - 垂直调整
- startResizeHorizontal - 水平调整

### 8. 其他功能（~100行）
- loadCommonPaths - 加载系统路径
- addToHistory - 添加历史
- showBinaryFileInfo - 显示二进制文件信息

## 重构策略

### 阶段1：条件日志（低风险）
创建 `useDebugLog.js` - 替换 40 个 console.log

### 阶段2：提取 Composables（中风险）
1. `useFileSystem.js` - 文件浏览和操作
2. `useZipBrowser.js` - ZIP 文件浏览
3. `useMediaPreview.js` - 媒体预览
4. `useFavorites.js` - 收藏夹管理

### 阶段3：拆分子组件（高风险，可选）
1. `PathInput.vue` - 路径输入组件
2. `FileList.vue` - 文件列表组件
3. `MediaPreview.vue` - 媒体预览组件
4. `FileEditor.vue` - 文件编辑器组件

## 风险评估

| 操作 | 风险 | 原因 |
|------|------|------|
| 条件日志 | 🟢 低 | 不影响逻辑 |
| 提取 composables | 🟡 中 | 需要仔细验证 |
| 拆分子组件 | 🔴 高 | 可能破坏功能 |

## 推荐执行顺序

1. ✅ 创建条件日志工具
2. ✅ 清理 console.log
3. ✅ 提取 useZipBrowser composable
4. ✅ 提取 useMediaPreview composable
5. ⚠️ 评估是否需要拆分子组件
