Game File Manager - 文件管理工具
一个专为开发设计的 VSCode 扩展,支持快速访问和编辑配置文件,完美支持 GB2312、GBK 等中文编码,智能文件扫描,多项目管理。
✨ 功能特性
核心功能
- 🎯 智能文件扫描 - 根据文件夹、文件名、扩展名灵活过滤,支持早停优化
- 🌏 完美中文支持 - 支持 GB2312、GBK、Big5、GB18030、UTF-8 等编码
- 🤖 自动编码检测 - 无需手动选择,自动识别文件编码
- 💾 编码保持 - 编辑后自动保持原文件编码格式不变
- 📁 多项目管理 - 同时打开多个项目,快速切换
- 🏷️ 项目别名 - 为项目设置易记的备注名
- 👁️ 单双击智能区分 - 单击预览,双击固定标签页(类似 VSCode 原生体验)
- 🗑️ 数据清理 - 一键清理所有使用数据,恢复默认状态
工具栏功能
- ➕ 添加项目 - 添加新的项目目录
- 📜 历史记录 - 快速切换历史项目
- 🔄 刷新列表 - 刷新当前项目文件列表
- ⚙️ 打开设置 - 一键打开扩展配置
- 🗑️ 清理数据 - 清理所有使用数据,恢复默认状态
界面功能
- 📊 状态栏实时显示当前项目和文件信息
- 🎨 彩色图标区分不同文件类型
- 📝 文件大小和路径信息展示
- 🎮 炫酷的 Tooltip 提示
🚀 快速开始
1. 添加项目
点击侧边栏工具栏的 + 按钮或使用命令面板:
Game File Manager: 添加项目
2. 浏览文件
- 单击 文件:打开预览模式(斜体标签,可被替换)
- 双击 文件:打开固定标签页(不会被替换)
- 右键 文件:
- 打开文件(固定标签)
- 在右侧打开
- 在资源管理器中显示
3. 管理项目
- 设置备注名:右键项目 → 设置项目备注名
- 移除项目:右键项目 → 移除项目
- 查看历史:点击工具栏的历史记录按钮
- 刷新列表:点击工具栏的刷新按钮
- 打开设置:点击工具栏的齿轮图标
- 清理数据:点击工具栏的清理按钮,清除所有项目、历史和配置,恢复默认状态
⚙️ 配置选项
在 VSCode 设置中搜索 Game File Manager 或点击插件工具栏的齿轮图标:
扫描配置
{
// 需要扫描的文件夹列表(递归搜索所有子目录)
"gameFileManager.searchFolders": ["ani", "ini"],
// 需要扫描的文件名列表(不含扩展名)
"gameFileManager.searchFileNames": [
"control",
"itemtype",
"config",
"monster"
],
// 需要扫描的文件扩展名列表(不含点号)
"gameFileManager.searchFileExtensions": ["ani", "txt", "csv", "ini", "xml"],
// 是否排除带数字后缀的文件夹(如 ini_1, ani_2)
"gameFileManager.excludeNumberedFolders": true
}
编码配置
{
// 默认编码格式
"gameFileManager.defaultEncoding": "GB2312",
// 是否自动检测编码
"gameFileManager.autoDetectEncoding": true
}
其他配置
{
// 历史记录最大保存数量
"gameFileManager.maxHistorySize": 10,
// 是否在状态栏显示信息
"gameFileManager.showStatusBar": true
}
💡 使用示例
示例 1:扫描特定配置文件
假设你的项目目录结构如下:
project/
├── ani/
│ └── control.ani
├── ini/
│ ├── client/
│ │ └── common/
│ │ └── datatable/
│ │ ├── itemtype.csv
│ │ └── monster.txt
│ └── config.ini
配置:
{
"gameFileManager.searchFolders": ["ani", "ini"],
"gameFileManager.searchFileNames": ["control", "itemtype", "monster", "config"],
"gameFileManager.searchFileExtensions": ["ani", "csv", "txt", "ini"]
}
插件将自动扫描并找到所有匹配的文件,并显示在侧边栏中。当所有配置的文件名都找到至少一个时,会自动停止扫描(早停优化)。
示例 2:多项目工作流
- 添加多个项目(如:主项目、测试环境、开发分支)
- 为每个项目设置备注名(如:"正式服"、"测试服"、"开发版")
- 在侧边栏可以同时看到所有项目的文件
- 通过历史记录快速在不同项目间切换编辑
- 需要重置时,使用清理数据功能恢复默认状态
🔧 工作原理
编码处理机制
插件使用 自定义 URI Scheme (gamefile://) 来处理非 UTF-8 编码的文件:
- UTF-8 文件:直接打开原文件,无需额外处理
- 非 UTF-8 文件(如 GB2312、GBK):
- 自动检测文件编码
- 通过自定义 FileSystemProvider 读取并转换为 UTF-8
- 在 VSCode 中以 UTF-8 显示和编辑
- 保存时自动转换回原编码格式
- 无需创建临时文件,内存中完成转换
这种方式既避免了 VSCode 默认 UTF-8 解码导致的乱码问题,又保持了原文件编码格式不变,且性能更优。
单双击处理
插件实现了类似 VSCode 原生文件树的单双击行为:
- 单击:延迟 250ms 后打开预览模式(斜体标签)
- 双击:检测到 400ms 内的第二次点击,立即打开固定标签页
- 使用时间戳精确判断,即使文件已选中也能正确识别双击
📋 支持的编码格式
- GB2312 (默认,简体中文)
- GBK (简体中文 Windows 常用)
- UTF-8 (国际标准)
- Big5 (繁体中文)
- GB18030 (中文扩展)
❓ 常见问题
Q: 为什么我的文件显示乱码?
A: 确保开启了"自动检测编码"选项。如果仍有问题,可以在设置中手动指定正确的默认编码格式。
Q: 如何指定要扫描的文件?
A: 在设置中配置三个选项:
searchFolders - 扫描哪些文件夹
searchFileNames - 扫描哪些文件名(不含扩展名)
searchFileExtensions - 扫描哪些文件类型
三个条件是 AND 关系,文件必须同时满足才会被扫描。
Q: 保存后文件编码会改变吗?
A: 不会。插件会自动记住文件的原始编码,保存时会转换回原编码格式。
Q: 单击文件为什么有延迟?
A: 这是为了实现单双击区分。单击会延迟 250ms 执行,在此期间如果检测到第二次点击(双击),会取消预览并打开固定标签页。
Q: 能否同时打开多个项目?
A: 可以!点击工具栏的 + 按钮即可添加多个项目,所有项目会同时显示在侧边栏中。
Q: 如何快速切换项目?
A: 可以为项目设置备注名(右键项目 → 设置项目备注名),然后通过侧边栏的项目列表或工具栏的历史记录按钮快速查找和切换。
Q: 如何清理所有数据并恢复默认状态?
A: 点击工具栏的清理按钮(垃圾桶图标),确认后会清除:
- 已打开的项目列表
- 历史记录
- 所有扩展配置(恢复为默认值)
- 首次使用标记
清理后请重新加载窗口以完全生效。
🛠️ 开发
本地开发
# 安装依赖
npm install
# 编译
npm run compile
# 监听模式(自动重新编译)
npm run watch
# 调试
# 按 F5 启动扩展开发主机
打包发布
# 打包成 .vsix 文件
npm run package
📦 依赖
- iconv-lite - 编码转换
- jschardet - 自动编码检测
- fast-glob - 快速文件扫描
📄 许可证
MIT License
🤝 反馈和建议
如果您有任何问题或建议,欢迎联系:
享受更高效的开发体验! 🎮✨