日常开发中,最让人焦虑的弹窗之一,大概就是“C盘空间不足”。明明只装了几个常用软件,系统盘却悄悄变成红色;临时文件清理了一波,过两天又打回原形。更要命的是,网上搜索“C盘清理工具”,搜出来的全是各种全家桶安装器,点了“立即下载”之后,桌面突然多出三五个不认识的软件。
这篇文章不推荐你安装任何“C盘清理大师”,而是用一套系统化的方案,从空间扫描、系统组件、用户缓存、开发者专属目录几个维度,把 C 盘空间一点点找回来。无论你是普通办公用户、学生党,还是后端开发、前端开发,都能从里面找到适合自己的清理策略。
文章会覆盖以下内容:
- C 盘空间是如何被占用的,先梳理再动手。
- 用 WizTree 快速定位大文件与目录。
- 清理休眠文件、系统更新缓存、WinSxS 组件存储。
- 清理微信、QQ、浏览器缓存等用户目录大户。
- 开发者专属:npm、pip、Docker、JetBrains 缓存清理。
- 一套可以直接运行的 Windows 清理脚本。
- 常见问题排查与日常维护清单。
建议先把文章收藏,再按照章节顺序操作。遇到不确定的文件,宁可先查一下再删,也不要盲目删除系统文件。
1. 清理之前的认知:C盘空间到底被谁吃了
1.1 先理解 C 盘的一类典型占用
很多教程一上来就让你删这个删那个,但如果不清楚空间去向,很容易把系统文件误删,导致蓝屏或软件无法启动。
C 盘常见的大块空间占用,可以分成这么几类:
| 占用类型 | 典型路径 | 说明 |
|---|---|---|
| 系统核心文件 | C:\Windows | 系统目录,不建议手动大范围删除 |
| 休眠文件 | C:\hiberfil.sys | 保存休眠会话的大文件,大小接近物理内存 |
| 虚拟内存 | C:\pagefile.sys | 系统页面文件,占用通常为内存的 1~2 倍 |
| 系统还原点 | 系统卷影副本 | 可能占据数十 GB |
| Windows 更新缓存 | C:\Windows\SoftwareDistribution\Download | 更新补丁下载缓存 |
| 用户临时文件 | %TEMP%、C:\Windows\Temp | 程序运行产生的临时文件 |
| 聊天软件文件 | 微信、QQ 的接收文件和缓存 | 很容易积累几十 GB |
| 浏览器缓存 | Chrome、Edge 等缓存目录 | 浏览网页产生的缓存 |
| 开发工具缓存 | npm、pip、Gradle、Docker 等 | 对开发机影响非常明显 |
从这张表可以看出,C 盘空间不足往往不是单个文件造成的,而是系统缓存、应用缓存、更新缓存叠加在一起的结果。所以正确的清理思路应该是:先扫描,再分类清理,最后建立维护习惯。
1.2 清理前必须遵守的三条原则
在动手之前,请记住下面这三条原则,能帮你避免大部分踩坑:
- 不确定的文件先查再删。尤其是
C:\Windows目录下的文件,普通用户不要手动删除。可以用磁盘清理、DISM 等系统工具。 - 重要资料先备份。涉及删除还原点、压缩系统文件时,先把重要数据备份到移动硬盘或云盘。
- 以管理员身份运行命令行。后面很多清理命令需要管理员权限,直接双击运行普通命令提示符可能会提示“拒绝访问”。
2. 环境说明与工具准备
2.1 本文适用环境
本文以 Windows 10 / Windows 11 为例,部分命令在 Windows 7 上也能运行,但效果会有所不同。
操作前建议确认系统版本:
winver运行后弹出的窗口会显示当前系统版本和内部版本号。本文的命令不需要额外安装运行环境,系统自带的命令提示符、PowerShell 即可完成大部分操作。
2.2 推荐准备的工具
准备两个轻量工具,能让清理效率提升很多:
| 工具 | 作用 | 获取方式 |
|---|---|---|
| WizTree | 快速扫描磁盘占用,定位大文件 | 官网下载免费便携版 |
| WizTree / TreeSize 二选一 | 目录大小分析 | 按需选择 |
| Dism++ | 系统级清理与优化 | 上官网下载绿色版 |
需要说明的是,WizTree 和 Dism++ 都很轻量,基本是绿色软件,不需要安装,解压后即可使用。如果你不方便下载第三方工具,Windows 自带的“存储感知”和“磁盘清理”也能完成一部分工作,后面会讲。
2.3 提前做好备份
清理前建议先创建一个系统还原点,尤其当你准备执行删除还原点、压缩 WSL 虚拟磁盘这类操作时。
创建还原点的方法:
- 在任务栏搜索“创建还原点”并打开。
- 选择 C 盘,点击“配置”。
- 选择“启用系统保护”,把磁盘空间使用量调整到合适的值。
- 返回窗口,点击“创建”,输入还原点名称,等待完成。
创建好还原点之后,后续操作即使出现问题,也可以从还原点把系统恢复到清理前的状态。
3. 第一步:用 WizTree 扫描 C 盘,找到真正的“空间杀手”
3.1 为什么推荐先扫描
很多人清理 C 盘的习惯是打开“设置 → 系统 → 存储”,看系统给出的清理建议。这个方法不是不能用,但它能覆盖的清理项有限,更多时候你还是不知道 50GB 空间到底被谁占用了。
WizTree 这类工具能直接读取 NTFS 主文件表,扫描速度非常快,往往几秒到十几秒就能扫完整块硬盘。它会把所有目录和文件按大小排序展示出来,一眼就能看到占用最大的目录在哪里。
3.2 扫描流程
打开 WizTree 后,选择 C 盘,点击“扫描”。
扫描完成后,界面会显示各个目录的大小排行。常见的几个大户一眼就能看出来:
C:\Users\你的用户名\AppData,通常是微信、浏览器、开发工具缓存。C:\Windows\WinSxS,系统组件存储。C:\Program Files或C:\Program Files (x86),安装了大型软件的目录。C:\hiberfil.sys,休眠文件。C:\Users\你的用户名\Downloads,下载目录。C:\Users\你的用户名\Documents\WeChat Files或xwechat_files,微信聊天文件。
结合 WizTree 的结果,你再决定优先清理哪一块,就不会漫无目的地删文件了。
3.3 注意区分“可删”和“不可删”
扫描结果里会出现大量系统文件,比如pagefile.sys、swapfile.sys、WinSxS等。这些文件虽然占空间,但不建议直接右键删除。
pagefile.sys:虚拟内存文件,删除会导致系统不稳定,建议通过“系统属性 → 高级 → 性能设置”调整页面文件大小或迁移到其他盘。hiberfil.sys:休眠文件,可以通过命令关闭休眠功能来释放。WinSxS:系统组件存储,直接删除会破坏系统,必须用 DISM 工具清理。System Volume Information:系统还原点存储,需要用系统保护设置或vssadmin命令清理。
4. 第二步:系统级清理,把 Windows 自己产生的垃圾清掉
4.1 使用系统自带的“存储感知”
Windows 10 和 Windows 11 都自带存储感知功能。打开方式:
设置 → 系统 → 存储
开启“存储感知”后,系统会自动清理临时文件和回收站内容。你也可以点击“临时文件”,手动勾选需要删除的项目:
- 传递优化文件
- 临时文件
- 回收站
- Windows 更新清理
建议不要勾选“下载”文件夹,除非你确认里面的安装包都不需要了。
4.2 用“磁盘清理”清理系统文件
磁盘清理是 Windows 老牌工具,干净可靠。
按Win + R,输入:
cleanmgr先选择 C 盘,等待扫描。扫描完成后,点击“清理系统文件”,再次选择 C 盘,这样能看到更完整的清理项,比如“Windows 更新清理”“设备驱动程序包”等。
推荐勾选的项目:
- Windows 更新清理
- 临时文件
- 缩略图
- 回收站
- 传递优化文件
4.3 关闭休眠并删除 hiberfil.sys
休眠功能会在系统盘根目录生成hiberfil.sys,文件大小通常等于物理内存的 40% 到 70%。如果 16GB 内存,这个文件可能有 6GB 到 10GB。
如果你用不到“休眠”功能,可以用管理员身份打开命令提示符,执行:
powercfg /h off命令执行后,hiberfil.sys会自动删除。如果你以后想恢复休眠功能,可以用:
powercfg /h on需要注意,关闭休眠后,“开始菜单 → 电源”里的“休眠”按钮会消失,但“睡眠”功能不受影响。
4.4 清理 Windows 更新残留
Windows 更新补丁下载后,会缓存在:
C:\Windows\SoftwareDistribution\Download这个目录里的文件可以删除,正确的做法是停掉 Windows Update 服务再删除,避免文件被占用。
用管理员身份执行:
net stop wuauserv net stop bits del /f /s /q C:\Windows\SoftwareDistribution\Download\*.* net start bits net start wuauserv执行完后,更新缓存就清空了。
4.5 使用 DISM 清理 WinSxS 组件存储
WinSxS 是 Windows 组件存储目录,随着系统更新会越来越大,但它不能直接删除。微软提供了 DISM 工具来分析并清理。
查看组件存储大小:
Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore执行清理:
Dism.exe /Online /Cleanup-Image /StartComponentCleanup如果希望进一步清理旧版本组件,可以加上/ResetBase参数:
Dism.exe /Online /Cleanup-Image /StartComponentCleanup /ResetBase关于/ResetBase需要特别注意:它会把所有现有更新固化为系统镜像,清理之后无法卸载已安装的更新补丁。所以执行前确认系统运行正常,且短期内不需要卸载补丁。
4.6 清理系统还原点
如果你的系统还原点占用了大量空间,可以在“系统保护”设置中调整占用上限,或者删除旧的还原点。
查看系统保护设置:
vssadmin list shadowstorage查看当前还原点:
vssadmin list shadows如果确认不需要保留任何还原点,可以执行:
vssadmin delete shadows /all /quiet这里一定要说清楚:删除所有还原点后,之前可以用来回滚系统的所有还原点都会丢失,操作前必须确认系统稳定,且重要数据已备份。
5. 第三步:清理用户目录中的“隐形大户”
5.1 临时文件目录
用户临时文件位于:
%TEMP%可以直接在资源管理器地址栏输入%TEMP%回车,全选并删除里面的文件。部分文件被程序占用不能删除时,跳过即可。
也可以使用命令行清理:
del /f /s /q "%TEMP%\*.*" >nul 2>&1 rd /s /q "%TEMP%" >nul 2>&1注意:rd删除目录后,建议重新创建一个%TEMP%目录,否则某些老程序可能出现找不到临时目录的问题。实际上系统会在下次重启后自动创建,所以不用太担心。
系统临时目录C:\Windows\Temp也可以一并清理:
del /f /s /q C:\Windows\Temp\*.* >nul 2>&15.2 微信、QQ 聊天记录与传输文件
微信是 C 盘空间消耗大户里非常典型的一个。默认情况下,微信会把接收的图片、视频、聊天记录缓存都存放在:
C:\Users\你的用户名\Documents\WeChat Files新版微信使用xwechat_files目录。
在微信客户端中,通过“设置 → 文件管理 → 打开文件夹”可以快速定位到文件目录。你可以手动查看哪些聊天对象的文件比较大,然后选择性清理。
更推荐的做法是:把微信的文件存储位置改到 D 盘或 E 盘。
微信 → 设置 → 文件管理 → 更改,选择新目录后,微信会自动迁移现有文件。以后新的接收文件就都存到新盘了。
QQ 的类似操作路径是:
QQ → 设置 → 文件管理 → 打开文件夹
清理时重点删除Image、Video、File子目录里不需要的旧文件。聊天数据块文件(如.dat结尾的数据库文件)不建议手动删除,否则可能丢失聊天记录。
5.3 浏览器缓存
Chrome 浏览器缓存路径:
C:\Users\你的用户名\AppData\Local\Google\Chrome\User Data\Default\CacheEdge 浏览器缓存路径:
C:\Users\你的用户名\AppData\Local\Microsoft\Edge\User Data\Default\Cache这些缓存文件可以删除,但不建议在浏览器运行时手动删除,最好先关闭浏览器。更省事的方法是:在浏览器设置里找到“清除浏览数据”,选择“缓存的图片和文件”,按时间范围清理。
5.4 下载文件夹与桌面
很多人的Downloads文件夹和桌面其实才是占用大户。系统安装包、压缩包、录屏文件、临时文档全部堆在一起,不知不觉攒了几十 GB。
清理思路很简单:
- 用 WizTree 扫描
Downloads目录,按大小排序。 - 把需要的文件移动到 D 盘或移动硬盘。
- 把不需要的安装包、临时压缩包直接删除。
- 以后下载文件时,养成“指定下载路径”的习惯,不要所有文件都进 C 盘。
5.5 OneDrive 本地备份
如果你开启了 OneDrive,并且把桌面、文档、图片等文件夹都同步了,那么这些内容也会占用 C 盘空间。
可以在 OneDrive 设置中检查“账户 → 管理存储”里各文件夹的占用情况。如果不需要将所有文件保存在本机,可以开启“文件随选”(Files On-Demand),让文件只保留云端副本,本地占用会大幅降低。
如果公司或学校强制要求 OneDrive 同步,至少把同步文件夹位置迁移到非系统盘。
6. 第四步:开发者专属清理,释放被工具链占用的空间
如果你是开发人员,C 盘空间不够,很可能是开发工具与构建缓存造成的。清理完下面这些目录,会有“山重水复疑无路”的感觉。
6.1 npm / pnpm / yarn 缓存
前端项目开发中,npm 缓存会占用不少空间。查看 npm 缓存位置:
npm config get cache清理 npm 缓存:
npm cache clean --forcepnpm 的 store 目录同样不小。查看 store 路径:
pnpm store path清理不需要的版本缓存:
pnpm store pruneyarn 缓存清理:
yarn cache clean还可以通过命令查看 Yarn 缓存目录:
yarn cache dir6.2 pip 缓存
Python 开发者经常用 pip 安装包,每次安装都会产生缓存包。清理命令:
pip cache purge查看缓存目录位置:
pip cache dir如果你的环境里有 conda,还可以执行:
conda clean --all清理 conda 的缓存、临时文件和无用的包。
6.3 Maven / Gradle 缓存
Java 开发的 Maven 本地仓库默认在用户目录下的.m2目录:
C:\Users\你的用户名\.m2\repository这个目录会随着依赖增多不断膨胀。可以使用mvn dependency:analyze检查无用的依赖,但手动清理比较麻烦。简单做法是:把.m2目录整体迁移到其他盘,然后在 IDE 中重新配置本地仓库路径。
Gradle 缓存目录:
C:\Users\你的用户名\.gradle其中包括caches、wrapper、daemon等目录。可以通过以下命令清理旧版缓存,但要注意某些项目可能需要重新下载依赖:
gradle clean更彻底的做法是定期删除.gradle\caches下的旧版本模块缓存,保留当前项目依赖的缓存即可。
6.4 JetBrains 全家桶缓存
使用 IntelliJ IDEA、PyCharm、WebStorm 等 JetBrains 开发工具时,会在本地生成大量索引和缓存文件。主要路径:
%LocalAppData%\JetBrains\该目录下每个工具都有一个版本目录,里面包含caches、log、index等子目录。建议打开 JetBrains 工具,在“设置 → 外观与行为 → 系统设置 → 缓存”中点击“清除缓存”,或者直接删除旧版本目录内的大缓存文件。
注意:删除缓存后,下次启动 IDE 会重新建立索引,首次打开项目会变慢,但这是正常现象。
6.5 Docker Desktop 与 WSL 虚拟磁盘
Docker Desktop 默认使用 WSL 2 作为后端,会在本地生成一个大型虚拟磁盘文件。时间久了,这个文件会越来越大,即使删除容器和镜像,磁盘大小可能也不会自动收缩。
查看 WSL 发行版信息:
wsl --list --verbose使用wsl --shutdown关闭 WSL,然后打开 Windows 的“磁盘管理”或“设置 → 应用 → 已安装的应用”,找到对应的 WSL 发行版,查看虚拟磁盘路径。
虚拟磁盘文件通常位于:
C:\Users\你的用户名\AppData\Local\Packages\CanonicalGroupLimited...\LocalState\ext4.vhdx压缩这个文件需要用到 diskpart,操作步骤如下:
- 关闭所有 WSL 进程:
wsl --shutdown - 打开管理员命令提示符,输入
diskpart - 依次执行:
select vdisk file="C:\Users\你的用户名\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu...\LocalState\ext4.vhdx" attach vdisk readonly compact vdisk detach vdisk exit这里要提醒:vhdx路径需要根据你自己的 WSL 发行版和用户目录调整。压缩前建议备份重要数据,操作过程中不要强制关机。
如果是 Docker Desktop,也可以直接设置“Settings → Resources → Advanced”,调整磁盘镜像大小上限,或者将 Docker 数据目录迁移到其他盘。
6.6 项目构建产物
开发项目时,前端项目的node_modules、Java 项目的target、build目录,C++ 项目的build目录,都很占空间。
如果你有很多旧项目,清理掉不再使用的:
del /f /s /q D:\projects\old-project\node_modules更稳妥地,在项目根目录执行:
npm prune或者干脆删除node_modules,之后用npm install重新安装。
Java 项目可以执行:
mvn clean这会清理target目录。
7. 第五步:一键清理脚本,把常用清理命令打包
手动执行上面这些命令比较繁琐。这里分享一个可以保存为.bat文件的清理脚本,日常双击运行即可。
文件路径:C:\Scripts\clean_c.bat
@echo off chcp 65001 >nul echo ========================================== echo C 盘清理脚本,请以管理员身份运行 echo ========================================== echo. rem 1. 清理系统临时文件 echo [1/6] 清理系统临时文件... del /f /s /q C:\Windows\Temp\*.* >nul 2>&1 del /f /s /q "%TEMP%\*.*" >nul 2>&1 rem 2. 清理 Windows 更新缓存 echo [2/6] 清理 Windows 更新缓存... net stop wuauserv >nul 2>&1 net stop bits >nul 2>&1 del /f /s /q C:\Windows\SoftwareDistribution\Download\*.* >nul 2>&1 net start bits >nul 2>&1 net start wuauserv >nul 2>&1 rem 3. 清理回收站 echo [3/6] 清理回收站... rd /s /q C:\$Recycle.Bin >nul 2>&1 rem 4. 清理缩略图缓存 echo [4/6] 清理缩略图缓存... del /f /s /q /a:h "%LocalAppData%\Microsoft\Windows\Explorer\thumbcache_*.db" >nul 2>&1 rem 5. 清理无效快捷方式(可选) echo [5/6] 检查常见缓存目录... del /f /s /q "%LocalAppData%\Temp\*.*" >nul 2>&1 rem 6. 清理 Windows 预读取文件 echo [6/6] 清理预读取文件... del /f /s /q C:\Windows\Prefetch\*.* >nul 2>&1 echo. echo 清理完成!建议重启一次电脑。 pause使用方式:
- 将脚本保存为
clean_c.bat。 - 右键点击脚本,选择“以管理员身份运行”。
- 等待执行完毕,重启电脑。
脚本比较简单,适合日常快速清理。如果要执行更深入的清理(如 DISM、休眠文件),建议配合手动命令,避免所有操作在一个脚本里全部执行,减少风险。
8. 常见问题与排查思路
清理过程中难免会遇到一些问题。下表整理了高频问题和解决方案:
| 问题现象 | 常见原因 | 解决思路 |
|---|---|---|
| 清理后空间依然不足 | 用户目录或软件缓存占大头 | 用 WizTree 重新扫描,继续定位大目录 |
| 删除文件提示“正在使用” | 文件被系统或后台程序占用 | 关闭相关程序;重启后再删除 |
| 休眠文件无法删除 | 没有用管理员权限执行命令 | 用管理员命令提示符执行powercfg /h off |
| 删完临时文件系统异常 | 误删了某些程序正在使用的缓存 | 重启电脑,或从还原点恢复 |
| WinSxS 目录太大 | 系统更新组件历史残留 | 用 DISM 清理,不要手动删 |
| 微信迁移文件后,聊天记录丢失 | 迁移过程中旧文件被清理 | 迁移前先备份完整微信号文件目录 |
| Docker 磁盘占用过大 | WSL 虚拟磁盘不会自动收缩 | 执行wsl --shutdown后用 diskpart 压缩 |
| 清理后 C 盘又很快变满 | 没有设置存储位置,软件继续写入系统盘 | 调整微信、浏览器、下载目录、开发缓存的存储路径 |
| 无法删除系统还原点 | 没有管理员权限或系统保护关闭 | 以管理员权限运行vssadmin delete shadows |
如果你遇到“空间清理后依然不足”的情况,建议回到第 3 章重新扫描一遍,检查是否有超大单个文件,比如pagefile.sys、hiberfil.sys、WSL 磁盘、虚拟机镜像、视频工程文件等。
9. 最佳实践:别等 C 盘飘红再动手
9.1 改变软件默认安装位置
很多软件默认安装到C:\Program Files,但并不是所有软件都强制装在 C 盘。安装时选择“自定义安装”,把目录改到 D 盘或 E 盘,日积月累能省下大量空间。
平时固定使用的开发工具,比如 Android Studio、Docker Desktop、JetBrains 系列,如果安装时可以指定目录,尽量选择非系统盘。
9.2 把个人数据文件夹迁移到其他盘
Windows 支持把“桌面”“下载”“文档”“图片”等系统用户文件夹移动到其他盘。
操作方法:
- 打开
此电脑,找到左侧“快速访问”中的“下载”或“文档”。 - 右键点击“属性 → 位置”。
- 点击“移动”,选择新磁盘路径。
- 点击“确定”,系统会迁移该文件夹。
这样以后下载的文件、桌面上放的资料,就直接存到其他盘了。
9.3 定期执行“三分钟维护”
建议每周执行一次三分钟维护:
| 动作 | 频率 |
|---|---|
| 运行清理脚本或磁盘清理 | 每周一次 |
| 检查微信文件存储位置 | 每月一次 |
| 用 WizTree 扫描 C 盘 | 每月一次 |
| 清理 npm / pip / Docker 缓存 | 每月一次 |
| 检查下载目录与桌面 | 每周一次 |
9.4 保留系统还原点的同时设置上限
系统保护很有用,但不能无限制占用磁盘。在“系统保护 → 配置”中,把“最大使用量”设置成 5% 或 10%,系统会自动淘汰旧还原点,避免 C 盘被还原点占满。
9.5 不要在这类操作上拖延
C 盘飘红不仅是空间问题,还会影响虚拟内存、系统更新、IDE 索引、数据库运行,最终体现为电脑变卡、编译变慢、软件崩溃。与其等到系统警告,不如现在动手做一次全面清理。
清理 C 盘不是一劳永逸的事,但只要掌握了定位大文件的方法,理解了系统文件、应用缓存、开发缓存的分布,之后每次清理都会变得很轻松。先用 WizTree 扫一遍,再按系统级、用户级、开发者级三个维度逐层清理,最后配合命令行脚本和存储位置调整,就能让系统盘长期保持充足空间。希望这份教程能帮你把电脑重新变流畅,清理完之后,建议顺手把常用软件的文件目录都迁出 C 盘,避免下次再飘红。