C盘飘红这件事,几乎每隔几个月就会在群里被问一轮。截图发过来,C盘剩一两个G,进度条红得发紫,配一句“怎么办”。大多数人的第一反应是装个清理软件,或者直接冲进 C:\Windows 里一顿删。我见过最离谱的一次,是把系统目录里的文件当垃圾清掉,结果开机直接蓝屏,最后只能重装。C盘满了不用怕,但前提是思路要对:先用系统自带工具做一次全面体检和常规清理,再对着几个真正吃空间的深度清理目标动手,最后把那些长期占地方的目录迁走,让C盘从“月月红”变成“常年绿”。这套流程不分新手老手,照着顺序走,基本都能把空间找回来。我处理过的机器里,从只剩 800MB 到腾出 60GB 的都有,关键不在于删得多狠,而在于删得对。
1. 先给C盘做体检:弄清空间被谁吃了再动手
动手之前必须先看一眼分布。清理这件事最怕的就是凭感觉,看到“临时文件”三个字就以为找到宝了,清完发现只多出 300MB,白忙一场。C盘的空间占用大概可以分成三块:系统保留、应用数据、个人文件,每一块的清理手段完全不同,混着来只会事倍功半。
1.1 存储设置里那张图,比任何清理软件都直观
Win10 1809 之后的系统,在“设置 > 系统 > 存储”里有一张占用分布图,点“显示更多类别”还能展开细分项。Win11 把这个页面做得更细,系统和保留、应用和功能、文档、图片、其他、临时文件各自占多少,一目了然。这张图的价值在于,它直接告诉你钱花哪了,而不是让你在一堆目录里瞎猜。
我最常见的两种情况:一种是“系统和保留”占了四五十个G,那问题多半出在 WinSxS、休眠文件、还原点这几项上;另一种是“应用和功能”占了大头,那八成是某个聊天软件或者游戏在C盘安了家。两种情况的处理路径完全不一样,所以第一步永远是看这张图,不是打开清理软件。
提示:这个页面有统计延迟,刚删完文件不会立刻刷新,别因为数字没变就以为没删掉,等几分钟或者重启资源管理器再看。
还有一个细节值得说:存储设置页面的“临时文件”分类点进去,可以直接勾选删除某些项目,包括“以前的 Windows 安装”“Windows 更新清理”“传递优化文件”这些,本质上就是调用了磁盘清理的接口,但入口更浅,适合不想记命令的人。
1.2 三类占用者的脾气完全不同
系统保留这一块,包含 WinSxS 组件存储、休眠文件、虚拟内存页面文件、系统还原点、更新缓存,特点是不能手动删,删了轻则功能异常,重则开不了机,只能通过系统提供的命令和界面去处理。应用数据这块,是各类软件自己写的缓存、聊天记录、下载内容,特点是藏在用户目录深处,得知道具体路径才能下手,而且最好是让软件自己搬,别硬剪。个人文件这块,桌面、下载、文档、图片默认都在 C:\Users 下面,特点是搬家最安全,右键属性就能改位置。
把这三类分清之后,清理顺序就很自然了:先处理系统保留里那些几GB起步的大户,再看应用数据里有没有能整体迁走的,最后把个人文件夹搬走,一劳永逸。
1.3 一个反直觉的结论:临时文件往往清不出多少
很多人对C盘清理的印象停留在“清临时文件”,实际上 %TEMP% 目录在正常使用的机器上通常只有几百MB到两三GB,除非你很久没清过,否则它从来不是主要矛盾。真正的大头是:WinSxS 普遍在 5 到 15GB 之间,休眠文件等于你的物理内存大小,系统还原点少则几GB多则几十GB,Windows.old 视升级情况在 10 到 30GB,微信和QQ的聊天记录加上缓存,几个GB到几十GB都很常见。
所以我的清理优先级一直是:先看系统和保留里的大项,再看应用数据里的聊天软件和浏览器,最后才扫临时文件和回收站。顺序反了,就会出现“清了半天只多出 1GB”的尴尬。这也解释了一个现象:为什么有人装了一堆清理软件,C盘还是红的——因为那些软件主要在扫边角料,真正占地方的东西它们要么不敢碰,要么碰不了。
2. cleanmgr 不只是清临时文件:系统自带清理工具的完整用法
磁盘清理(cleanmgr)是系统自带的老牌工具,界面朴素,很多人点开看一眼就关了,觉得没啥可清的。问题出在没用对入口。默认打开时它只扫描用户级项目,真正的系统级垃圾藏在那个不起眼的“清理系统文件”按钮后面。
2.1 “清理系统文件”按钮才是真正的入口
Win+R 输入cleanmgr,选择C盘,等它扫完,你会看到一个勾选列表,里面大概是回收站、临时文件、缩略图这些。这时候别急着点确定,先点左下角的“清理系统文件”,它会以管理员权限重新扫描一遍,扫描时间明显更长,但扫完之后列表会多出好几项关键内容:Windows 更新清理、以前的 Windows 安装、传递优化文件、设备驱动程序包、Windows 错误报告和反馈诊断。
这几项加起来经常能腾出 10GB 以上。我印象很深的一台机器,Windows 更新清理一项就有 8GB 多,那是历次更新残留的安装包。点确定之后它会问你是否确认删除,删更新缓存的过程中进度条会走一会儿,别以为卡死了。
注意:“下载”文件夹这一项默认不要勾。它指向的是你的 Downloads 目录,勾了会把你自己下载的文件一起删掉,很多人在这里翻过车。
2.2 用 sageset / sagerun 做一套能复用的清理配置
每次手动勾选很烦,而且容易漏。cleanmgr 其实支持配置保存:以管理员身份打开命令提示符,运行cleanmgr /sageset:1,会弹出一个更完整的设置界面,勾选你希望长期清理的项目,确定之后配置就存下来了。以后要执行,运行cleanmgr /sagerun:1,它会按你之前勾的项自动跑一遍,全程无交互。
# 以管理员身份运行,先配置 cleanmgr /sageset:1 # 之后定期执行,可放进计划任务 cleanmgr /sagerun:1这个用法的好处是可控。比如你不想清“下载”和“回收站”,在 sageset 里就别勾,以后每次跑都不会误伤。我一般会把它加到任务计划程序里,每月跑一次,设置成“不管用户是否登录都运行”,省得每次都手动点。数字 1 是配置编号,理论上可以用 0 到 9999 之间不同的编号存多套配置,比如一套“轻清理”一套“重清理”,按需调用。
2.3 存储感知:设置一次,长期自动打扫
“设置 > 系统 > 存储”里的存储感知是个容易被忽略的功能。打开之后可以配置几条规则:临时文件什么时候自动删、回收站里的文件保留多少天、下载文件夹里的文件保留多少天。最后这一项要格外小心,默认是关闭的,我建议保持关闭,因为下载目录里经常有你还想留着的文件。
存储感知的定位是“日常保洁”,它负责把临时文件、过期回收站这些边角料定期扫掉,防止小垃圾堆积。但它不碰 WinSxS、休眠文件、还原点这些硬骨头,所以别指望开了它就万事大吉。我的做法是打开它,只勾临时文件和回收站两项,下载文件夹那项永远不勾。
2.4 碎片整理工具:机械盘和固态盘是两套逻辑
顺带把“磁盘优化”这件事说清楚,因为很多清理教程会把它和C盘满混在一起讲。机械硬盘需要定期碎片整理,把分散的文件块拼回去,提升读写效率;固态硬盘不需要碎片整理,它靠 TRIM 指令回收无效块,强行整理反而增加写入量、损耗寿命。Win10 和 Win11 的“优化”工具(运行dfrgui打开)会自动识别磁盘类型,对固态盘执行 TRIM,对机械盘执行碎片整理,你只需要点“优化”就行,不用自己判断。
真正要避免的是拿第三方碎片整理工具去怼固态盘,尤其是那种标榜“深度整理”的。这类操作对C盘空间没有任何帮助,只会让硬盘老得更快。清理空间和优化性能是两件事,别混为一谈。
3. 系统工具碰不到的角落:几个吃空间大户的手工处理
磁盘清理和存储感知能覆盖大部分常规垃圾,但有几个大户它们要么不碰,要么只能部分处理,得手动上命令。这一节里的每一条都有明确的操作边界,照着做之前先看清楚代价。
3.1 WinSxS:只能用 DISM 分析再清理,手删必炸
WinSxS 位于 C:\Windows\WinSxS,是系统的组件存储,里面保存着系统更新过程中留下的旧版本组件,用于卸载更新和系统修复。它的大小经常在 5 到 15GB 之间,是“系统和保留”占用的主要来源之一。网上有些教程教人直接进目录删文件夹,这是绝对错误的做法,删了之后系统更新会失败,严重的会导致系统无法启动。
正确的处理方式是 DISM 命令。先在管理员命令提示符里跑分析:
Dism /Online /Cleanup-Image /AnalyzeComponentStore输出里会列出“组件存储实际大小”和“可回收空间”。可回收空间就是能清掉的量,通常有 1 到 5GB。确认之后执行清理:
Dism /Online /Cleanup-Image /StartComponentCleanup这一步会删掉被新版本取代的旧组件,但不影响已安装更新的卸载能力。如果空间还是不够,可以加/ResetBase参数:
Dism /Online /Cleanup-Image /StartComponentCleanup /ResetBase/ResetBase会把所有被取代的组件版本全部删除,清理效果更彻底,但代价是之后无法卸载任何已安装的 Windows 更新。我的建议是先用不带 ResetBase 的版本,看看能腾出多少,确实不够再考虑加参数。另外这个命令跑起来比较慢,十几分钟很正常,别中途关窗口。
3.2 hiberfil.sys:休眠文件该不该关,看使用习惯
hiberfil.sys 藏在C盘根目录,默认隐藏,大小约等于物理内存。16GB 内存的机器,这个文件就是 16GB 左右。它的作用是支持休眠和快速启动。
彻底关闭休眠:
powercfg /h off执行后文件立即消失,空间马上回来。代价是失去休眠功能,部分机器的快速启动也会失效。台式机用户基本不用休眠,关掉最划算。笔记本用户如果依赖合盖休眠或者快速启动,就要权衡一下。
折中方案是缩小而不是完全关闭:
powercfg /h /type reduced这条命令在 Win10 1803 之后可用,会把休眠文件压缩到原来的一半左右,保留快速启动但去掉完整休眠。我自己的笔记本就是这么处理的,腾出七八个G,快速启动还在。
3.3 pagefile.sys:虚拟内存可以挪,别直接禁用
页面文件默认在C盘,大小一般是物理内存的 1 到 1.5 倍。它的位置可以改:右键“此电脑” > 属性 > 高级系统设置 > 性能设置 > 高级 > 虚拟内存更改,取消“自动管理”,把C盘设为“无分页文件”,再到D盘设一个系统管理的分页文件。
不建议完全禁用虚拟内存,尤其是内存小于 16GB 的机器。很多程序在启动时会检查页面文件是否存在,禁用了轻则报错,重则直接崩溃,某些专业软件和游戏对这个特别敏感。稳妥的做法是:主页面文件放到其他盘,C盘保留一个小尺寸的(比如 800MB 到 2GB),专门给系统崩溃时写内核转储用。这样既腾出了大部分空间,又保留了兼容性。
3.4 系统还原点:留一个近期的就够,别全删也别不管
系统保护默认会给C盘分配一部分空间存还原点,占用几个GB到几十GB不等。查看当前分配:
vssadmin list shadowstorage调整上限,比如压到 10GB:
vssadmin resize shadowstorage /for=C: /on=C: /maxsize=10GB删除最旧的还原点:
vssadmin delete shadows /for=C: /oldest也可以在“系统属性 > 系统保护”里图形化操作,选中C盘点“配置”,拖动滑块调上限,点“删除”清空所有还原点。我的建议是保留至少一个近期的还原点,万一系统出问题还能回滚,把上限压到 5 到 10GB 就够了,没必要留几十个G。
3.5 Windows.old:升级留下的旧账,十天内处理
系统大版本升级或者重装之后,C盘会出现一个 Windows.old 目录,里面是旧系统的完整备份,用于十天内的回滚,大小通常在 10 到 30GB。超过十天系统会自动删,但很多人等不及。
清理入口有两个:磁盘清理里勾选“以前的 Windows 安装”,或者“设置 > 系统 > 存储 > 临时文件”里勾选同名项。删之前想清楚,删了就回不去旧版本了。如果新系统用着没问题,直接删;如果还在观望,就再等几天。
3.6 应用缓存:聊天软件和浏览器才是隐形大户
这一块最容易被忽视。微信默认把聊天记录和文件存在C:\Users\用户名\Documents\WeChat Files,用了几年之后几十个G很常见。迁移方法是在微信“设置 > 文件管理”里点“更改”,选一个新目录,微信会自动搬过去。QQ 类似,在设置里找文件管理相关选项。注意迁移过程中别关软件,等进度走完。
浏览器缓存也不小。Chrome 的缓存在C:\Users\用户名\AppData\Local\Google\Chrome\User Data\Default\Cache,直接在浏览器设置里清就行,别手动删目录,容易把配置一起搞坏。另外各种开发工具、设计软件、视频软件的缓存目录也都在 AppData 下面,各自有清理入口,优先用软件自带的清理功能。
4. 从清到搬:让C盘长期保持健康的迁移方案
清理是治标,搬家才是治本。如果用户文件夹、聊天记录、常用软件都还在C盘,过几个月又会满。这一节讲的是怎么把长期占地方的东西挪走,而且挪得安全。
4.1 用户文件夹迁移:右键属性里的“位置”选项卡
桌面、下载、文档、图片、视频这几个文件夹,默认都在 C:\Users\用户名 下面。迁移方法很统一:右键文件夹 > 属性 > 位置选项卡 > 点“移动” > 选一个新目录 > 确定。系统会问你是否把现有文件一起移过去,选“是”,它会自动搬运并更新路径。
这个方式比手动剪切安全得多,因为系统会同步修改注册表里的路径指向,各种软件调用“我的文档”时也会自动跳到新位置。有几个细节要注意:目标目录必须提前建好,而且不能直接选D盘根目录,最好建一个 D:\Users\用户名\Documents 这样的结构;迁移过程中别中断,文件多的话会走一会儿;迁移完成后原来的C盘目录会自动消失,不用再手动删。
4.2 已装软件迁移:能不迁就不迁,重装更稳
Windows 没有官方的软件迁移工具,直接剪切 Program Files 里的文件夹,大部分软件会打不开,因为注册表里的路径没变。稳妥的做法是卸载重装到D盘,安装时手动改路径。像 Steam 这种有游戏库管理功能的,可以在设置里直接添加新库目录并迁移已安装的游戏,用软件自带的功能最安全。
有些软件确实必须装在C盘,或者数据目录写死在用户目录下,这种情况可以考虑下一节的目录联接。
4.3 目录联接:给路径依赖型软件留个后门
目录联接(junction)是 NTFS 文件系统的特性,可以把C盘的一个目录“指向”D盘的另一个目录,对程序完全透明——程序以为自己在读写C盘,实际数据落在D盘。命令是mklink /J,需要管理员权限:
mklink /J "C:\目标链接路径" "D:\实际存放路径"顺序不能反:第一个参数是C盘那个“假”目录,第二个参数是D盘真正存数据的目录。举个实际场景,某个软件把缓存固定写在C:\Users\用户名\AppData\Local\某软件\Cache,你可以先把 Cache 目录里的内容移到 D 盘对应目录,删掉C盘的空目录,再用 mklink 建立联接,之后软件照常读写,数据全在D盘。
注意:如果D盘是移动硬盘或者网络位置,拔掉之后联接会失效,相关软件可能报错。目录联接只适合指向本机固定硬盘。
4.4 定期体检加自动清理,才是长期方案
搬完之后不是一劳永逸。我的习惯是每季度做一次体检:打开存储设置看分布,跑一次Dism /Online /Cleanup-Image /AnalyzeComponentStore看组件存储,检查一下还原点占用,顺便看看微信文件目录又涨了多少。日常则交给存储感知和cleanmgr /sagerun:1的计划任务。这套组合下来,C盘基本能稳定在合理水位,不会出现突然飘红的情况。
5. 清理过程里那些碰不得的东西
讲完了怎么做,得讲讲哪些不能做。清理C盘翻车的案例,绝大多数不是因为没清干净,而是因为清错了地方。
5.1 绝对不能手动删的目录清单
C:\Windows\System32和SysWOW64:系统核心文件,删了直接开不了机。C:\Windows\WinSxS:只能通过 DISM 处理,手删会导致更新失败。C:\Windows\Fonts:字体目录,删了界面会乱码。C:\Windows\System32\config:注册表配置,动了系统就废了。C:\Program Files和Program Files (x86)里的文件:卸载要走控制面板或设置,别硬删文件夹。C:\Users\用户名\AppData整个目录:里面是各软件的配置和缓存,整个删掉会导致大量软件重置,浏览器书签、聊天记录可能一起没。
这些目录的共同点是:体积大、看起来像垃圾、删了系统或软件会出问题。判断标准很简单——如果你不确定一个目录是干什么的,就别动它。
5.2 几个看着很爽实则危险的“优化”操作
禁用虚拟内存是流传最广的坑之一,很多人为了省那几个G直接关掉,结果某些程序启动报错,或者系统蓝屏时连转储文件都生成不了。清空 WinSxS 是另一个,用第三方工具强行删里面的文件,短期看空间回来了,下次系统更新大概率失败。还有清理注册表的“深度优化”,收益极小,风险极高,现代系统根本不需要靠清注册表来省空间。
另外要警惕那些标榜“一键深度清理”的工具,尤其是会扫描系统目录并建议你删除的。正规的清理工具会有白名单机制,不会碰系统关键文件,判断不了的目录会跳过。选择清理软件的原则是:宁可它保守,不要它激进。
5.3 已经误删了怎么办
如果只是删了某些软件目录,重新安装对应软件通常能恢复。如果是系统文件被删导致异常,先试系统文件检查:
sfc /scannow如果 sfc 修不好,再用 DISM 修复系统映像:
Dism /Online /Cleanup-Image /RestoreHealth这两条命令跑完重启,大部分系统文件损坏都能修复。如果连系统都进不去,就需要用系统还原点回滚,或者进恢复环境处理。这也是为什么我前面建议保留至少一个近期还原点——真出事的时候,它是最后的保险。
我自己在这些年里踩过的最大的一个坑,是早期帮人清理时手动删了 WinSxS 里的备份文件夹,当时空间确实回来了十几个G,结果一个月后系统更新反复失败,最后只能重装。从那以后我对系统目录的原则就一条:能用官方命令处理的绝不手删,官方命令处理不了的,就让它留着。空间这东西,腾出来是为了用得舒服,不是为了把系统搞崩。