磁盘又红了?我用 SOLO 写了个磁盘分析器,接入 LLM 智能分析,一键揪出垃圾文件(已开源)

:broom: 聊着聊着,我把 C 盘救活了

摘要: 用 TRAE SOLO 纯对话方式,零手写代码打造了一款本地磁盘空间分析器,接入 LLM 智能分析,一键揪出垃圾文件,安全不误删。

C盘红了整整三年,我终于忍不了了。

我让 AI 工具 TRAE SOLO 帮我“聊”出了一个磁盘分析器——全程零代码,纯靠对话

它能像侦探一样:

  • :magnifying_glass_tilted_left: 揪出藏在角落的大文件
  • :people_with_bunny_ears: 识破伪装的重复文件
  • :zombie: 挖出半年没碰过的“僵尸”数据
  • :robot: AI 帮你判断:删还是不删

删除全部进回收站,让电脑回归清爽。


:clipboard: 背景

我是一名计算机专业大学生,日常学习离不开电脑——课件、论文、项目源码、实验数据越堆越多。最头疼的就是磁盘空间告急:想装个新软件要精打细算,存个大文件要先删点东西腾地方,打开磁盘却眼花缭乱分不清哪些有用、哪些是垃圾。

市面上的磁盘清理工具要么功能太简陋,要么捆绑广告全家桶,要么动不动就让你充会员。作为有一点强迫症的人,我更想对自己的数据有掌控感:看得清、删得准、不误伤。

因此我希望通过与 TRAE SOLO直接对话,生成一个清晰明了,功能齐全的磁盘清理工具。


:hammer_and_wrench: 实践过程

一、任务拆解

一个磁盘分析器,听起来复杂,但拆开看就是几个独立模块:

  1. 扫描模块:选文件夹 → 递归遍历 → 统计大小、数量
  2. 展示模块:大文件排行、大文件夹排行、文件类型饼图、柱状图
  3. 检测模块:重复文件 MD5 比对、临时文件识别、僵尸文件筛选
  4. 操作模块:勾选 → 删除到回收站
  5. 附加模块:文件迁移、导出报告
  6. AI模块: AI分析扫描数据,给出删除建议

先把核心的“扫描 + 展示”跑通,再一层层加功能,避免一口吃成胖子。


二、用到的 SOLO 能力

  • 自然语言生成完整项目:把需求文本扔给它,直接生成 Electron + React + TypeScript 项目骨架
  • 增量修复:编译报错了,把错误信息贴回去,它能定位到具体文件和行号给出修复方案
  • 性能优化建议:扫描大目录白屏卡顿,描述现象让它重写数据流(批量发送 + 虚拟滚动)
  • 上下文理解:前面讨论过的功能、改过的文件,它都记得,不用反复解释

三、关键操作过程

第一步:把想法变成需求文档

我先自己理清要做什么功能,写成一份结构化的需求说明,包括技术栈、每个模块的输入输出、交互细节。然后把这份文本直接发给 SOLO,让它生成项目。

第二步:搭建环境跑起来

代码生成后,在本地安装 Node.js,npm install 装依赖,npm start 启动。

第三步:对着报错逐个修

TypeScript 类型错误、JSX 里写了裸 <> 被当成标签、import 了没用的变量……每次把报错信息贴给 SOLO,它就能给出修改。

第四步:功能验证 + Bug 修复

编译过了只是开始。实际一跑发现两个大坑:文件夹大小显示几百万 TB(递归累加时把格式化后的字符串又当字节算了)、重复文件检测把不同文件判为重复(MD5 计算逻辑有问题)。继续贴给 SOLO 修。

第五步:性能优化

小文件夹没问题,一扫描大磁盘就白屏卡死。排查发现是扫描完成后把几十万条数据一次性塞进 React 状态导致渲染崩溃,改成只存 TOP 排行、全量数据不触发渲染后,内存从几百 MB 降到几 MB,问题解决。


四、踩过的坑

  1. JSX 转义小插曲:在标签里直接写 >100MB 会触发 TS 编译错误,因为 > 被解析成标签结束符。JSX 里文本内容要用 &gt; 转义,这是 React 的基础规则,不是代码逻辑问题。

  2. 文件夹大小虚高:递归累加时把格式化后的字符串又当字节数用了,导致显示几百万 TB。这个属于逻辑细节上的疏忽,数据流转时单位要保持原始字节,只在最终展示时才格式化。

  3. 重复文件检测过于敏感:不同项目里同名的配置文件,因为文件小、MD5 采样策略偏了,被误判成重复。后续改为全文件哈希计算就准了,属于检测精度的取舍问题。

  4. 隐藏文件夹的迷惑性.vs.ipch 这些点号开头的文件夹,Windows 资源管理器默认不显示,扫描出来却能看到。这不是 bug,是扫描工具和系统显示策略的差异,知道这回事就不会踩坑了。

  5. 冗余代码清理:AI 生成时代码里会带一些没用的 import 和变量,比如自动引入 React 但新版不需要、定义了状态变量没使用。TypeScript 严格模式一一揪出,删完就干净了,属于正常打磨。

  6. 大磁盘扫描白屏卡死:小文件夹正常,一扫描全盘窗口就无响应。排查发现进度条能跑到 99%,说明扫描本身没崩,而是 onScanDone 回调里把几十万个 FileInfo 对象一次性塞进 React 状态,内存瞬间飙到几百 MB,渲染线程直接卡死。最终改为扫描完成后只保留 TOP50/TOP20 排行数据放进状态,全量列表留在 ref 里不触发渲染,内存降到几 MB,白屏问题解决。

每条坑都给 SOLO 描述现象 + 贴报错,基本一两轮就能修好。


:bullseye: 成果展示

项目信息


核心功能

功能 说明
:open_file_folder: 文件夹扫描 递归遍历,统计总大小、文件数、文件夹数
:bar_chart: 大文件/大文件夹排行 TOP50 大文件 + TOP20 大文件夹
:pie: 文件类型分布 饼图展示各类型占用比例
:chart_increasing: 可视化图表 柱状图(大文件夹排行)
:repeat_button: 重复文件检测 MD5 哈希比对,支持勾选删除
:broom: 智能清理建议 自动识别临时文件、长期未用文件、空文件夹
:wastebasket: 安全删除 移入回收站,二次确认,不永久删除
:page_facing_up: 导出报告 JSON 格式扫描报告
:robot: AI 智能分析 接入API,给出清理建议
:counterclockwise_arrows_button: 文件迁移 系统盘空间不足时迁移大文件到其他磁盘

:desktop_computer: 使用示例

以某游戏项目文件为例,下图为主页面,左侧栏为功能栏

扫描概览:可清晰看出目录结构以及所属关系,以及大文件夹的部分排名


大文件排行:清晰列出各种吃掉内存的大文件

大文件夹排行:按大小标明列出文件夹

重复文件:找出目录下的重复文件(该文件夹中无重复文件,因此显示找到0组重复文件)

智能清理:找出各种不影响正常运行的文件并给予删除建议

文件迁移:选择目标文件夹后,可将爆满磁盘的文件转移至其他盘,缓解磁盘压力

删除文件:可选择文件以及文件夹进行删除。

AI智能分析:在设置中填入API后,可以使用AI分析,由AI给出文件删除建议

导出报告:以JSON格式导出报告

:light_bulb: 效果与总结

效率提升

原本从零搭建一个 Electron + React 桌面应用,光环境配置、项目结构、IPC 通信这些基础设施就要折腾大半天,再加上功能开发和修 bug,保守估计需要 二至三天。用 TRAE SOLO 后,2-3 小时即可完成,提效超过 90%


SOLO 在我的流程中做了什么

  • 需求翻译官:我把想法写成结构化的需求文档,SOLO 直接生成完整项目骨架,无需手写一行代码
  • 报错修理工:编译报错、运行时 bug,把错误信息贴回去,它能定位到具体文件和行号给出修复
  • 性能顾问:白屏卡顿这种抽象问题,描述现象就能给出优化方案并改好代码
  • 持续记忆:整个对话过程中,前面的改动和约定它都记得,不用反复解释

可复用的方法

  1. 需求文档化:把功能需求写成结构化文档(技术栈 + 模块拆分 + 交互细节)再喂给 SOLO,效果远好于零散描述
  2. 小步迭代:先跑通核心流程(扫描 + 展示),再逐步加功能,修 bug 时一次只修一个,避免混乱
  3. 报错即贴:任何编译或运行时错误直接贴给 SOLO,不用自己排查,这是提效最大的环节

TRAE SOLO大大提高了coding效率,以前做项目是先学再写,现在是先想再聊——把精力花在"想清楚要什么"而不是"怎么写代码"上。


:package: 项目已开源 | 纯本地运行 | 数据不上传 | 安全可控