花一天给笔记本做次"大扫除":释放 89GB,顺便把用了三年的 D 盘推倒重来
起因很朴素:不是硬盘不够用,是根本找不到东西。
我的 C 盘还剩 122GB、D 盘还剩 124GB,空间一点都不紧张。但每天打开 D 盘,看到的是 40 多个叫不上规律的文件夹,找一个去年做的装置方案要翻三层目录、试五六个关键词。
所以这一天干的事情,本质上不是"清理垃圾",而是重构。顺手清出来的 89GB,是副产品。
一、先摸底,别动手
第一原则:在没搞清楚现状之前,一个字节都不删。
写了个 Python 脚本递归扫全盘,只统计、不修改:
全盘 38 万文件 / 153.5 GB
PDF 占 65.7 GB,6.8 万个 ← 工程图纸,绝对大头
微信 xwechat_files 11.8 GB
AppData 9.4 GB
扫完第一眼看到的东西让我愣了一下——D:\工作资料 下面躺着三份几乎一模一样的中科资料:
| 目录 | 大小 |
|---|---|
| 中科资料 | 27.64 GB |
| 中科本部 | 27.09 GB |
| 办公室电脑资料\中科本部 | 27.09 GB |
光这一项就是 54GB 的冗余。外加迅雷下载的 Win11 ISO 4.92GB、装机工具残留 5.24GB。
先出报告,再谈删除。 这一步输出了一份 HTML 报告,把每一类文件、每一个嫌疑目录都列出来,我逐项确认之后才继续。
二、先解决"找不到",再解决"太多"
很多人整理文件的第一反应是"分类"。我建议反过来——先把搜索做快,分类就没那么重要了。
装了两个东西:
- Everything:文件名秒搜。全盘 38 万文件,输入关键词,结果实时出。支持
*.pdf 中科这种组合语法。 - PowerToys:PowerRename(批量重命名,支持正则)、PowerRename、File Locksmith(查文件被谁占用)、FancyZones(13.3 寸屏分屏刚需)。
装完 Everything 之后,我对"目录必须分得完美"的执念立刻降了一半:反正搜得到。这时候再来做架构,心态就对了——架构是给"浏览"用的,不是给"检索"兜底的。
三、新架构:编号骨架 + junction
D 盘原来的问题是"历史堆积":每来一批资料就新建一个文件夹,三年下来变成一锅粥。
新骨架很简单:
D:\
├── 00-Inbox\ 收件箱——所有新文件先进这里
├── 10-工作\ 工作资料(12 个子目录)
├── 20-笔记库\ (预留,Obsidian)
├── 30-个人\ 个人/家人文件
├── 40-软件与驱动\ 安装包、驱动、装机工具
├── 90-归档\ 待观察区,确认不用了再清
└── 99-系统与服务\ 程序数据目录
用数字前缀,是为了让它永远按我想要的顺序排。 顶层只留 6 个入口,一眼望到底。
关键技巧:junction(目录联接)
有些目录物理上不能动——微信正在实时写入、同花顺进程在跑、WorkBuddy 十几个进程占着、当前会话的工作目录就在里面。硬移会直接出事。
解法是 junction:在 99-系统与服务\ 下面建一个"高级快捷方式"指向原位置。
mklink /J "D:\99-系统与服务\01-微信数据" "D:\微信"
点进去看到的是完整内容,但物理位置一字节没动。逻辑上归位了,物理上零风险。
最后保留 junction 的只有 5 个:微信、石化通、同花顺、WorkBuddy、WorkBuddy 工作区。其余 18 个目录全部真实移动。
四、真实移动之前,先查"谁在用"
这一步是全天最该做、也最容易省的一步。移动 18 个目录(含三份中科副本共 95GB)之前,先做了三件事:
- 查注册表
InstallLocation,确认哪些是程序的安装位置 - 查
Win32_Process的ExecutablePath,确认哪些目录里有正在运行的进程 - 查各目录最新文件的修改时间,确认哪些还在被写入
三条筛下来,5 个目录判定为"不能移",改走 junction 方案。剩下的才动。
移动脚本本身也加了保险:删除 junction 之前先用 GetFileAttributesW 确认它是 reparse point(0x400),不是 junction 就拒绝删除——防止哪天手滑把真实目录当快捷方式干掉。
移动完逐项校验体积,18 个目录零差异。
五、那条 54GB 的大鱼
三份中科副本,删哪份?不能拍脑袋。做了三重验证:
第一步,结构比对。
- B(中科本部)与 C(办公室电脑资料\中科本部)100% 等同:25,908 个文件的路径、大小、修改时间,无一处不同。
- A(中科炼化)26,200 个文件,是超集:A 独有 292 个文件、0.55GB,B、C 独有 0 个。
第二步,哈希抽样。
挑 20 个文件、共 5.05GB,对三份分别算 MD5,跑了 56 秒——全部一致,0 处不符。
第三步,才删。
删掉 B + C 共 51,816 个文件,释放 54.29 GB。删完立刻复验 A:26,200 文件 / 27.64GB,与删除前完全一致。
有意思的是,原本定的规则是"保留最新项",结果这条规则根本没用上——三份共有的 25,908 个文件修改时间完全相同,不存在谁更新的问题。
另外,办公室电脑资料 删掉副本后还剩 13.32GB 独有内容(石化通文件、DCS 总图、方案),那些是别处没有的,全部保留。
六、被漏掉的 6 个文件
晚上检查的时候发现:D 盘根下还散着 6 个文件没归类,其中两个是 5GB 的 Win11 ISO。
漏扫的原因很蠢:第一轮扫描脚本用的是
[ d for d in os.listdir(path) if os.path.isdir(...) ]
只取了目录,把根下的散落文件整个跳过了。
处理完是这样:
| 大小 | 处理 |
|---|---|
| 5.22 GB Win11 ISO | 删 |
| 4.92 GB Win11 LTSC ISO | 删 |
163 MB NETDRVS.IMG |
→ 40-软件与驱动\03-装机工具与驱动备份 |
| 76 MB 打印驱动 | → 40-软件与驱动\05-外设驱动 |
| 2 个日志/ini | → 90-归档 |
又释放 10.15 GB。
顺带还发现两个"伪系统目录"空壳——D:\Program Files (x86) 和 D:\ProgramData,各 0 个文件,对应程序(先刷宝、夸克)早就不在已安装列表里了。当年把程序装到 D 盘留下的坑,真系统目录在 C 盘好端端地待着。删。
七、桌面:29 项 → 12 项
桌面是最容易堆积的地方。清理后只留快捷方式、远程桌面和 desktop.ini——这才是桌面的本职。
有个判断值得一提:桌面有个叫「资料」的文件夹,名字看着像工作资料,打开一看是护士考试报名、毕业证、资格证、师德师风考核表,署名是家人,还含证件照。于是归到了 30-个人\01-护士资料-陈丹腾,并在桌面留了个快捷方式。
文件名是会骗人的,归类前一定要点开看。
八、C 盘收尾
C 盘 198GB,已用 77.6GB,其实不紧张。扫完发现真正的坑是回收站囤了 10.47GB / 6,283 个文件——9 月删的服务器备份、分片压缩包、同花顺更新包,全躺在里面没清。
清理策略上我没用"整个目录删",而是缓存目录名白名单匹配,只删这些名字的目录:
Cache / Code Cache / GPUCache / ShaderCache / DawnCache /
DawnGraphiteCache / DawnWebGPUCache / GrShaderCache /
CacheStorage / remote_resource_cache / VideoDecodeStats
先干跑算量、确认清单,再真执行。
其中微信的 radium 有 1.115GB,只删 radium\web\profiles\*\Cache,radium\users(0.93GB,小程序账号数据)特意保留——那个删了要重新登录一堆东西。
另外当前会话不是管理员,SoftwareDistribution\Download、WinSxS、CBS 日志都动不了,这部分留给了系统自带的磁盘清理。
结果:C 盘可用 120.6 → 133.2 GB,释放 12.61 GB。
九、战果
D 盘 已用 150.6 GB → 74.0 GB 可用 124 → 200.6 GB
C 盘 已用 77.6 GB → 65.0 GB 可用 120.6 → 133.2 GB
────────────────────────────────────────────────
合计释放 89.0 GB
比数字更值钱的是:D 盘根目录从 40 项降到 15 项,现在只有一个规矩——
新下载、新收到的文件一律先丢进
00-Inbox,每周花 5 分钟归位一次。
十、五条血泪经验
1. 扫描脚本别只统计目录。
os.listdir 加个 isdir 过滤,就能让你漏掉两个 5GB 的 ISO。扫盘时文件和目录要分开统计。
2. 删了文件,空间不一定释放。
本机所有删除都会被"先送回收站"机制接管,即使用 DeleteFileW 也一样。删完必须再清一次回收站。今天因为这条,两次以为"没生效"虚惊一场。
3. 跨盘 shutil.move 被打断会留下双份。
移动脚本被沙箱拦截后重跑,结果 MES相关 变成了两份(源没删 + 目标已建)。正确做法:重跑前先检查目标是否已存在,并做全量 MD5 比对确认完整(这次比了 108 文件 / 204.8MB,0 处不符)才敢删源。
4. 删 junction 前必须校验 reparse point。
os.rmdir 对 junction 和空目录一视同仁,误判就是删错东西。用 GetFileAttributesW 确认 0x400 再动手。
5. 建子目录前先列一遍已有编号。
这次新建 03-驱动、04-装机工具 跟已有目录撞号,事后又返工重排了一遍。
十一、还没做完的
- [ ] 建 Obsidian 笔记库,位置预留
D:\20-笔记库 - [ ] Everything 设全局热键,并确认没勾「跟随 junction 点」
- [ ] PowerToys 开 FancyZones 分屏
- [ ]
01-中科炼化内部仍有同名图纸重复("管道各层平面布置图"和"材料相关文档"两个子目录各存一份)
写在最后
整理电脑这件事,很多人卡在"不知道从哪开始"。我的建议是:
先只读扫描出报告 → 装搜索工具降低焦虑 → 设计架构 → 用小步验证建立信心 → 最后才动大块头。
一天下来,删掉的 89GB 里没有一个是"赌"的——每一笔都有比对数据撑着。这才是敢按下删除键的底气。