C盘爆满别慌!用Windows自带工具深度清理,轻松腾出50G
1. 先搞清楚C盘到底被什么吃掉了
每次看到C盘那条红色的进度条,心里都跟着一紧。我自己的主力机是Win11,系统盘给了120G,按理说日常办公加写代码完全够用,结果上个月一看,可用空间只剩3.8G,连开个Photoshop都提示暂存盘不足。很多人第一反应是去下载所谓的“C盘清理大师”,装完发现清理出来的空间还没它自己占的多,甚至捆绑一堆全家桶。所以这篇内容我想聊的不是“一键清理”这种表面功夫,而是从根上把C盘的空间找回来,包括系统缓存、休眠文件、虚拟内存、软件数据目录迁移这些真正占大头的部分。
这篇适合两类人看:一类是C盘已经飘红、急需腾出空间的普通用户;另一类是喜欢自己动手、想搞清楚Windows存储机制的技术爱好者。我会把每一步的操作意图、参数含义、可能踩的坑都讲清楚,你照着做基本不会出问题。文中涉及的命令和工具都是Windows自带的,不需要额外装任何第三方软件,安全性和可控性都有保障。
在动手之前,先建立一个基本认知:C盘的空间消耗大致分四块——系统本身(Windows目录)、用户数据(Users目录)、程序安装(Program Files)、以及各种缓存和临时文件。很多人只盯着“临时文件”清理,但真正的大头往往是休眠文件、系统还原点、WinSxS组件库、以及各种软件默认往AppData里塞的数据。不把这些搞清楚,清完没两天又满了。
我习惯先用一个命令摸清家底,再决定从哪下手。打开管理员权限的PowerShell,跑这么一段:
这段脚本会列出C盘根目录下每个文件夹的体积,按大小排序取前15个。跑完你大概率会看到几个熟悉的名字:Windows、Users、Program Files、ProgramData。有时候还会冒出一个 hiberfil.sys 或者 pagefile.sys,这俩是隐藏的系统文件,资源管理器默认看不到,但占的空间可能是好几个G甚至十几个G。
注意:跑这个脚本需要管理员权限,否则很多系统目录读不到,统计结果会偏小。另外第一次跑可能比较慢,因为要递归遍历所有文件,耐心等一两分钟。
摸清家底之后,心里就有数了。接下来我按“收益从高到低”的顺序,把几个深度清理手段逐一拆开讲。
2. 系统级大文件的处理策略
2.1 休眠文件hiberfil.sys到底能不能删
hiberfil.sys是Windows休眠功能的支撑文件,它会把内存里的内容写到硬盘上,以便下次开机快速恢复。这个文件的大小通常等于物理内存的40%到100%,如果你有16G内存,它可能就占6到16个G。对于台式机或者很少用休眠的笔记本来说,这笔开销完全可以省掉。
关闭休眠的命令很简单,管理员CMD或PowerShell里执行:
执行完这个命令,hiberfil.sys会立刻消失,空间马上释放。但要注意,关闭休眠之后,“快速启动”功能也会一并失效,开机会稍微慢一点点。如果你在意开机速度,可以只缩小休眠文件而不完全关闭:
这个命令把休眠文件压缩到内存的40%,既保留了快速启动,又省了一部分空间。我实测在16G内存的机器上,hiberfil.sys从12G缩到了6.4G,效果还是很明显的。
提示:有些轻薄本默认就是关闭休眠的,跑第一条命令可能会提示“休眠未启用”,这是正常的,说明你本来就没这个文件,不用管。
2.2 虚拟内存pagefile.sys的迁移与调整
pagefile.sys是虚拟内存的页面文件,系统用它来弥补物理内存的不足。默认情况下它放在C盘,大小由系统自动管理,可能从几G到几十G不等。如果你有第二块硬盘(比如D盘是机械盘或者另一块SSD),完全可以把页面文件挪过去,给C盘腾地方。
操作路径是:右键“此电脑” → 属性 → 高级系统设置 → 性能设置 → 高级 → 虚拟内存更改。进去之后,先取消“自动管理所有驱动器的分页文件大小”,然后选中C盘,设为“无分页文件”,再选中D盘,设为“系统管理的大小”,最后点“设置”并重启。
这里有个细节:如果你把C盘的分页文件完全关掉,系统在蓝屏时可能无法生成完整的转储文件,排查故障会麻烦一些。折中方案是C盘保留一个小的分页文件(比如2G),把主要的放到其他盘。我自己的做法是C盘留2G,D盘给16G,既保证了稳定性,又释放了C盘空间。
2.3 系统还原点的空间回收
系统还原是个好东西,出问题能救命,但它默认会占用C盘最多10%的空间。如果你C盘本来就紧张,这个比例可以调小,或者干脆只保留最近的还原点。
查看当前还原点占用的命令:
输出里会显示“已用卷影副本存储空间”和“最大卷影副本存储空间”。如果发现占用很大,可以调整上限:
这条命令把还原点最大占用限制到5G。如果你觉得5G还是多,可以设成3G。但我不建议完全关闭系统还原,万一驱动装崩了或者系统更新出问题,没有还原点会很被动。
注意:调整还原点空间后,旧的还原点可能会被删除,只保留最近的。如果你有重要的还原点想留着,先别急着调。
3. 用Windows自带工具做深度清理
3.1 cleanmgr的隐藏选项
很多人知道磁盘清理(cleanmgr),但只用了最表面的“临时文件”清理。其实cleanmgr有一个隐藏的“清理系统文件”模式,能清掉Windows更新缓存、旧版Windows安装、传递优化文件这些大块头。
操作方式:Win+R输入cleanmgr,选择C盘,然后点击左下角的“清理系统文件”按钮。等它扫描完,你会看到多出来一堆选项,比如“Windows更新清理”可能就有好几个G,“以前的Windows安装”甚至能到十几G。勾选这些再点确定,清理效果比默认模式强得多。
如果嫌手动点麻烦,可以用命令行直接指定要清理的项目:
这个命令会弹出一个更全的选项列表,你勾选好之后,再用:
就能自动执行之前选定的清理项。这个技巧适合做成计划任务,每个月自动跑一次。
3.2 存储感知的自动化配置
Win10和Win11都内置了“存储感知”功能,它能自动清理临时文件、回收站里的旧文件、以及下载文件夹里长期不用的内容。默认可能是关闭的,建议打开并配置一下。
路径:设置 → 系统 → 存储 → 存储感知。打开之后,可以设置“删除回收站中超过XX天的文件”和“删除下载文件夹中超过XX天的文件”。我一般设成30天,既不会误删最近要用的东西,又能定期自动瘦身。
存储感知还有一个“立即释放空间”的按钮,点一下会扫描并清理临时文件、缩略图缓存、传递优化文件等。这个操作很安全,不会动你的个人文档,适合定期点一下。
3.3 传递优化文件的清理
传递优化是Windows更新的一种P2P分发机制,它会把你下载过的更新缓存分享给局域网内其他机器。这个缓存有时候能占到好几个G,而且cleanmgr默认不一定能清干净。
手动清理路径:设置 → 系统 → 存储 → 临时文件,找到“传递优化文件”勾选删除。或者用命令:
这条PowerShell命令会强制清空传递优化缓存。我实测在一台长期没清理的机器上,这一步释放了4.2G。
4. 软件数据目录的迁移与链接
4.1 AppData里到底藏了什么
C:\Users\你的用户名\AppData 这个目录是很多人的空间黑洞。它分三个子目录:Local、Roaming、LocalLow。其中Local最大,很多软件把缓存、日志、模型文件都塞在这里。比如微信的聊天记录默认在Documents,但它的缓存可能在AppData;Chrome的缓存、各种开发工具的包缓存、甚至一些AI工具的模型文件,都可能往这里写。
我见过最夸张的一个例子:某用户C盘60G,AppData占了28G,其中大部分是某个视频剪辑软件的缓存和代理文件。所以清理C盘不碰AppData,等于白清。
查看AppData各子目录大小的命令:
跑完你会对哪个软件在偷偷吃空间一目了然。
4.2 用mklink把大目录搬到其他盘
找到大目录之后,直接删可能不行,因为软件还要用。这时候mklink就派上用场了。它的原理是创建一个符号链接,让系统以为文件还在C盘,实际存储在D盘。对软件来说完全透明,不用改任何配置。
操作步骤(以某软件缓存目录为例):
- 先关闭相关软件,确保没有进程占用文件。
- 把原目录剪切到D盘,比如
D:\Cache\SomeApp。 - 以管理员身份打开CMD,执行:
这里的/J表示创建目录联接(Junction),对大多数软件都兼容。执行成功后,C盘原位置会出现一个带快捷方式箭头的文件夹,但实际数据在D盘。
注意:mklink必须在管理员权限下运行,而且目标路径不能已存在。如果提示“文件已存在”,先把原目录删掉或改名。另外,系统关键目录不要随便链接,比如Windows、Program Files,搞不好会开不了机。
我自己的机器上,把Chrome缓存、npm缓存、pip缓存、以及几个AI工具的模型目录都做了mklink,累计从C盘搬走了将近40G。软件用起来完全没感觉,但C盘一下子宽裕了。
4.3 微信、QQ等聊天工具的迁移
微信和QQ是C盘杀手,尤其是微信,如果你不手动改路径,它会默认把聊天记录和文件存在“文档”目录,而“文档”默认在C盘。迁移方法很简单:打开微信设置 → 文件管理 → 更改文件管理路径,选到D盘的一个文件夹,然后重启微信,它会自动把已有数据搬过去。
QQ类似,在设置 → 基本设置 → 文件管理里改。这两个操作能轻松释放几个G到几十G不等。我帮朋友处理过一台机器,光微信就搬走了22G。
5. 那些容易被忽略的角落
5.1 WinSxS组件库的清理
C:\Windows\WinSxS 这个目录看起来很大,但千万别手动删。它是Windows的组件存储,删了系统更新和某些功能会出问题。正确的清理方式是:
这条命令会清理旧版本的组件,保留当前需要的。如果想更激进一点,加上/ResetBase参数:
/ResetBase会把所有旧组件都清掉,之后无法卸载已安装的更新。如果你不打算回滚更新,可以用这个。我一般跑完能释放2到5G。
5.2 驱动仓库FileRepository的瘦身
C:\Windows\System32\DriverStore\FileRepository 存放的是驱动程序包,每次更新驱动都会留一份旧的。时间长了可能占好几个G。清理方法是:
先列出所有第三方驱动,找到那些旧版本的oemXX.inf,然后用:
逐个删除。这个操作要小心,别把正在用的驱动删了。建议只删那些明确标注为旧版本的,或者你确定已经更新过的。
提示:如果不确定哪个能删,可以先不碰这个目录。它虽然大,但清理收益和风险不成正比,新手慎入。
5.3 浏览器缓存的定期清理
Chrome、Edge这些浏览器,缓存目录动辄几个G。虽然可以在浏览器设置里清理,但更彻底的方式是直接删缓存文件夹。路径一般在:
关掉浏览器,直接删掉Cache文件夹里的内容,重启浏览器会自动重建。这个操作很安全,不会丢书签和密码,只是首次打开网页会慢一点。
6. 常见问题与排查实录
6.1 清理后空间没变化怎么办
有时候你明明删了一堆东西,C盘可用空间却没涨。这通常有几个原因:一是文件被移到了回收站,回收站还在C盘,得清空回收站;二是文件被某个进程占用,删了但空间没释放,重启即可;三是你删的是硬链接或符号链接,实际数据在别处;四是系统还原点或卷影副本还占着空间,需要用vssadmin清理。
排查顺序:先清空回收站 → 重启 → 检查还原点 → 用WizTree之类的工具看实际占用。WizTree读取的是NTFS的MFT表,速度极快,能直观看到哪个文件占了多少空间,比资源管理器准得多。
6.2 为什么豆包等AI工具会往C盘写数据
最近很多人问“为什么豆包会写进C盘”。其实不只是豆包,很多AI工具默认把模型文件、缓存、日志放在用户目录下的AppData里。这是因为Windows的用户目录是默认的可写路径,开发者图省事就直接用了。解决办法就是前面说的mklink,把对应目录链接到其他盘。或者有些工具支持在设置里改数据目录,优先用官方设置改,改不了再上mklink。
6.3 C盘扩容的可行性
如果清理完还是不够用,可以考虑扩容。分两种情况:一是C盘后面有未分配空间,可以直接用磁盘管理扩展;二是C盘后面没有连续空间,需要用第三方分区工具调整。Windows自带的磁盘管理只能扩展相邻的未分配空间,如果D盘在C盘后面,得先压缩D盘,但压缩出来的空间不一定能直接给C盘,因为中间隔着D盘。这时候要么用分区助手之类的工具,要么备份数据重新分区。
我个人的建议是:如果C盘小于100G,优先考虑扩容而不是天天清理。现在SSD价格不算贵,直接换一块大容量SSD做系统盘,把旧盘做数据盘,一劳永逸。
6.4 常见问题速查表
| 问题现象 | 可能原因 | 解决方向 |
|---|---|---|
| 清理后空间没变 | 回收站未清空/文件被占用 | 清空回收站、重启 |
| hiberfil.sys占十几G | 休眠功能开启 | powercfg -h off |
| AppData异常大 | 软件缓存默认写C盘 | mklink迁移 |
| WinSxS占十几G | 旧组件未清理 | DISM StartComponentCleanup |
| 还原点占满C盘 | 系统保护默认10% | vssadmin调整上限 |
| 更新缓存清不掉 | 传递优化缓存 | Delete-DeliveryOptimizationCache |
| C盘无法扩展 | 后面无连续未分配空间 | 第三方分区工具或换盘 |
7. 我自己的清理流程与心得
经过多次折腾,我总结出一套相对固定的清理流程,每次C盘飘红就按这个顺序走一遍,基本能稳定回收20到50G。
第一步,跑一遍空间统计脚本,找出前几大目录。第二步,关闭休眠、调整虚拟内存、限制还原点。第三步,跑cleanmgr的sageset模式清理系统文件。第四步,检查AppData,把大目录用mklink搬走。第五步,清理浏览器缓存和传递优化缓存。第六步,跑DISM清理WinSxS。最后重启,再用WizTree确认效果。
这套流程里,收益最大的是mklink迁移和休眠文件处理,通常这两步就能解决大部分问题。DISM和cleanmgr属于锦上添花,但胜在安全无副作用。
有几个坑我踩过,这里提醒一下:一是mklink之前一定要关软件,否则文件被占用会失败;二是不要链接系统关键目录,比如Windows和Program Files;三是调整虚拟内存后一定要重启才生效;四是清理WinSxS的ResetBase参数用了之后就不能卸载更新了,想回滚的别用。
另外,网上那些“C盘清理大师”“C盘清理工具”我基本不推荐。它们能做的事,Windows自带工具都能做,而且更安全。有些工具还会偷偷装驱动或者改注册表,得不偿失。真要用第三方,WizTree看空间占用可以,清理还是交给系统自己。
最后分享一个小习惯:我会把常用的开发工具缓存目录提前做好mklink,比如npm、pip、cargo、docker的镜像目录,这样它们永远不会往C盘写大文件。新装软件时,第一件事就是看设置里能不能改数据目录,能改就改到D盘,不能改就记下来回头mklink。养成这个习惯之后,C盘基本不会再出现飘红的情况。