欢迎光临
我们一直在努力

C盘只剩46GB,我没装“清理大师“,而是用 Rust 写了个 2.4MB 的开源工具

一、起因:C盘又红了

238GB 的 C 盘,只剩 46.2GB。

相信每个 Windows 用户都经历过这个时刻:磁盘条变红,软件装不下,系统更新失败。这时你有几条路——

  • 装某"清理大师"?它会尖叫着"检测到 3247 个垃圾!你的电脑危在旦夕!",然后趁你慌乱装上三个全家桶;
  • 用专业工具?满屏 WinSxS\\amd64_microsoft-windows… 这样的路径,看得懂算我输,更别提敢删了;
  • 重装系统?备份折腾一整天,半年后 C 盘照样红。

我选了第四条路:自己一项一项查清楚,搞明白每个大文件是什么、为什么占空间、删了会怎样,然后才动手。

这篇文章记录整个过程:先分享手工清理的完整战果(不装任何软件也能照着做),再讲我们怎么把这套经验做成了一个 2.4MB 的开源小工具,以及路上踩过的坑。

二、手工清理实战:安全清出 34GB

先上结果,全部项目都验证过安全性,零误删:

清理项释放量方法
Windows 更新旧备份(WinSxS) 11.4 GB 微软官方 DISM 命令(下文详述)
软件更新遗留的旧安装包 6.1 GB %LOCALAPPDATA% 下 24 个 *-updater 目录
下载器未完成的残块 3.7 GB IDM 的 DwnlData 目录(在 IDM 内删任务最稳)
临时文件 2.9 GB %LOCALAPPDATA%\\Temp,占用中的文件自动跳过
npm 缓存 2.0 GB npm cache clean –force
pip 缓存 0.6 GB 直接删 %LOCALAPPDATA%\\pip\\cache

46.2GB → 80+GB,合计约 34GB。

几个值得展开的点:

1. WinSxS:最大的头,也是最多人不敢碰的

WinSxS 是 Windows 组件存储,动辄十几 GB,绝对不能手动删。正确姿势是用微软官方的 DISM 工具,而且要分两步:

:: 第一步:只读分析(不改任何东西),看微软自己怎么说
Dism /Online /Cleanup-Image /AnalyzeComponentStore

:: 第二步:确认"推荐清理=是"之后,再执行
Dism /Online /Cleanup-Image /StartComponentCleanup

我机器上分析报告显示"组件存储备份 19.24GB,推荐清理:是",执行后释放 11.4GB。两个细节:

  • 进度跑到 100% 后 DISM/TiWorker 还会继续工作很久,进程真正退出才释放空间,别急着关;
  • /StartComponentCleanup 不能加 /NoRestart 参数——这个参数在这里是无效参数,会直接报错退出。我们后来在软件里就栽过这个跟头(后文有讲)。

2. 更新包残留:藏得最深的一批

这是最意外的发现:%LOCALAPPDATA% 下躺着 24 个 *-updater 结尾的目录,共 6.1GB——各种软件(尤其 Electron 系)下载更新包装完就忘删的残留。

更有意思的是:这批目录是我人工盯着 Top20 大目录查时漏掉的,一个个都不大(几百 MB),分散在犄角旮旯,人眼扫过去根本注意不到。后来是软件全盘扫描时才抓出来的——这件事直接改变了我对"手工清理够不够"的判断。

3. 哪些东西看着像垃圾,其实千万别动

  • BaiduNetdiskDownload、WeChat Files、迅雷下载目录——这是你的个人数据,不是缓存;
  • conda 的 pkgs 目录——和环境之间有硬链接,手删会废掉环境,只能 conda clean -p;
  • 各种叫 Cache 但在 User Data 里的目录——先搞清楚是谁的,浏览器内核类的可以清,有些"Cache"里存着登录令牌。

三、为什么做成软件:人眼会漏

手工清理有两个绕不过去的问题:

  • 人眼会漏——24 个更新包目录就是证据;
  • 每次都要重新查一遍——"这个目录是什么"这种知识,散落在无数次搜索里,没有沉淀。
  • 于是我们把整套经验做成了软件:C盘管家(DiskButler),开源免费。
    在这里插入图片描述

    核心设计只有一条原则:把用户当成年人。每一项清理都先回答三个问题——这是什么?为什么占空间?删了会怎样?看明白了,用户自己做决定。

    具体落地成几个机制:

    • 白名单后端强制:能删什么由 Rust 后端白名单决定,前端界面显示什么就删什么,想越界删都做不到;
    • 清理三分层:垃圾残留(默认勾选)/ 性能缓存(空间充足时会劝你留着——缓存能加速软件,这是别的清理软件不会说的实话)/ 含个人数据(永不默认勾选);
    • DISM 两步式:先只读分析,原始报告一字不改地展示,用户确认后才真正执行;
    • 每条规则都有单元测试:目前 55 个测试守着,改规则必须全绿才能发版。
      在这里插入图片描述

    四、技术选型:为什么是 Tauri 2 + Rust

    对比项Tauri 2Electron
    安装包 2.4 MB 100~300 MB
    运行内存 几十 MB 几百 MB
    WebView 系统自带 WebView2 自带整个 Chromium
    后端语言 Rust Node.js

    对一个磁盘清理工具来说,"自己就是个胖子"是没有说服力的。Tauri 用系统自带的 WebView2 渲染前端(React 18 + TypeScript + Tailwind),Rust 后端负责扫描和清理——2.4MB 安装包、零联网、无常驻进程。

    扫描引擎用 jwalk 并行遍历,全盘几十万文件十几秒扫完;TreeMap 可视化用 d3-hierarchy 的 squarify 布局,Top-N 剪枝 + 按需下钻,百万级节点也不卡。

    五、写在最后

    这个项目从一次真实的 C 盘自救开始,现在长成了四个功能:磁盘透视、一键清理、启动管理、内存体检。所有清理规则都先在我们自己的电脑上跑过、验证过才保留——拿不准的,宁可不清。
    在这里插入图片描述

    • GitHub(MIT 开源):https://github.com/YGTQ3/disk-butler
    • 国内加速下载:https://github.akams.cn/?url=https://github.com/YGTQ3/disk-butler/releases/latest/download/DiskButler-Setup.exe (打开点"开始下载"即可)
    • 不想装软件?上面第二节的手工清理表格照着做,一样能清出不少空间。

    如果它帮到了你,点个 Star 就是最好的支持。也欢迎跑一下软件里的「帮它认识更多软件」,把你电脑上小众软件的缓存分布发给我们(报告只有目录名和大小,没有文件名、没有内容、没有用户名)——规则库靠真实样本一条条长大。


    赞(0)
    未经允许不得转载:171主机测评 » C盘只剩46GB,我没装“清理大师“,而是用 Rust 写了个 2.4MB 的开源工具
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址