☰
C盘空间告急?用Codex精准清理AppData缓存,安全释放80GB
2026/10/15 12:09:25 网站建设 项目流程

最近我的C盘又爆红了,右键一看可用空间只剩几个GB,系统不断弹“磁盘空间不足”的警告。我先进“设置 > 系统 > 存储”打算清理,结果一眼看到一项特别扎眼:在某用户目录下的 AppData 文件夹,占了 87.81GB。这个数字直接把我整懵了。AppData 是 Windows 里所有软件存放用户数据的目录,但绝大多数人根本不知道它里面装了什么,更不敢乱动。我当时的第一反应是找工具,但这次没有急着装第三方清理软件,而是用了 Codex——一个能帮我写脚本、分析数据、自动排查问题的 AI 编程助手,直接把 87.81GB 的构成查了个底朝天。这次“C盘大扫除”的完整过程,我就原原本本写下来,包含怎么用 Codex 生成磁盘扫描脚本、怎么区分能删和不能删的文件、以及几套稳妥的清理方案。对 C 盘空间经常告急、又不敢对 AppData 下手的朋友,这篇应该能帮你省下不少折腾时间。

1. 为什么 C 盘最容易爆红:AppData 才是吃硬盘的大户

1.1 C 盘空间被谁吃掉的

先别急着开骂,C 盘爆红是一个典型的“慢性堆积”问题。系统安装在 C 盘,所以 Windows 更新留下的备份文件、系统休眠文件(hiberfil.sys)、虚拟内存(pagefile.sys)都默认放在 C 盘。这些属于系统级占用,很多人已经知道怎么清理,但真正被大多数人忽略的,是用户数据目录下的 AppData。

AppData 位于C:\Users\你的用户名\AppData,默认是隐藏文件夹。很多人根本不知道这个文件夹的存在,更不知道它里面住着所有你装过的软件的“私人数据”:配置文件、缓存文件、日志、临时文件、下载的更新包,甚至聊天记录里的图片和语音。

为什么软件喜欢往 AppData 里塞东西,而不是放在自己的安装目录?因为 Windows 的系统约定是:普通用户对Program Files目录没有完整写权限,而 AppData 属于每个用户自己的专属空间,软件可以自由读写。结果就是,几乎所有软件都把“用户相关”的动态数据往 AppData 里扔。时间一长,它就变成了一个“谁都可以往里丢东西,但谁也不会主动打扫”的杂物间。尤其是各种网站缓存、崩溃转储、日志文件,软件自己只写不删,堆积速度远比想象中快。

所以看到 87.81GB 这个数字,我并不觉得稀奇。很多办公电脑和开发机,AppData 长期不清理,占地 30GB 到 100GB 都属于常见现象。

1.2 AppData 三个文件夹各是什么来头

AppData 里面有三个子文件夹:Local、LocalLow、Roaming。这三个名字看着抽象,其实很好理解。用一句话打比方:Local 是“放在本地的杂物”,Roaming 是“跟着账号走的行囊”,LocalLow 是“权限更低的本地杂物”。

先看 Roaming。它的特点是数据可以跟着用户配置文件漫游,在域环境或同一账号体系下,部分程序会把配置放在这里,方便多台电脑间同步。但现在大部分应用并没有真正使用漫游同步,只是沿用了“配置写在这里”的习惯。很多社交软件的聊天文件、游戏平台的账号缓存、文档编辑器的自动备份,都存在 Roaming 下。

再看 Local。它的特点是只属于本机。程序的主体数据、大型缓存、下载内容、日志、临时文件基本都堆在这里。我这次扫描出的 87.81GB 里,Local 占了绝对大头,因为它包含浏览器缓存、各类开发工具缓存(包管理器缓存、编译缓存)、系统更新缓存、软件安装包残留,等等。

LocalLow 是一个权限受限的 Local 目录,主要给一些沙箱运行的插件、旧式多媒体应用、游戏使用。它一般体积不大,但如果某个应用出了 Bug 反复写崩溃日志,也可能涨到几个 GB。理解这三个目录的区别,是后面决定“能不能删”的基础。

1.3 87.81GB 意味着什么

87.81GB 不是一个小数字。以主流 1TB 固态硬盘的电脑来说,它占了 C 盘总容量的 8% 以上;如果是 256GB 的 C 盘,这个占比接近 35%。更关键的是,AppData 的增长是“隐形”的,你看不到它,系统默认也不会告诉你它有多重,只有磁盘爆红的时候,你才会意识到不对劲。

为了搞清这 87.81GB 具体由哪些“大头”组成,我决定用 Codex 写一个扫描脚本。为什么不直接装第三方清理软件?理由很简单:装在系统里的管家类工具,越权清理的风险高,还有各种弹窗和捆绑;而我只想“知道自己磁盘上放了什么”,用脚本统计目录大小,是最直接、最透明的做法。Codex 能根据指令生成 PowerShell 脚本,还能解释每个目录是干什么的,等于请了个“会写程序的助手”替我做人工审计。

从结果来看,这次扫描确实发挥了作用:它不仅帮我找出了几个可以安全清理的目标,还让我看清了哪些数据绝对不能动。后面我会把整个操作过程完整贴出来,包括脚本、命令、判断标准和最终清理结果。

2. 千万别乱删:这些文件能删和不能删的边界

2.1 乱删 AppData 的典型事故

在动手清理之前,有必要先讲清楚“为什么 AppData 不能像其他临时文件那样直接全选删除”。我认识的一位同行,曾经为了省空间,直接在资源管理器里把整个 AppData 文件夹删掉了。结果是什么呢?电脑当场失去所有桌面配置、壁纸设置、浏览器登录状态和密码、输入法的个人词库、各种编辑器的配置全部丢失。更要命的是,一部分软件以为自己是“第一次安装”,重新生成配置;还有一部分软件因为找不到关键数据直接闪退,需要重装或重置才能恢复。

这个例子说明一个道理:AppData 里不只是垃圾,它是“垃圾和宝藏混在一起”的文件夹。删除之前必须分清哪些是“可再生”的缓存,哪些是“不可再生”的配置和数据。这也是为什么我坚持用脚本先看清楚再删,而不是直接盲删。

判断一个文件能不能删,有三个原则:

  1. 它是不是可以从网络重新下载、或由程序自动重新生成。
  2. 它是不是只包含临时状态,删除后不影响注册登录和个性化设置。
  3. 它是不是属于纯粹的日志、转储、安装包残留。

满足这三条,基本可以放心处理;不满足,就要谨慎。

2.2 哪些目录天生就是缓存,可以放心清

AppData 里面有大量目录,生成它的程序早就设计好了“允许清空”的机制。下面列几类最常见、也最安全的清理目标,全部属于“删了会自动重建”的类型。

第一类是临时文件目录,Windows 的临时文件主要写在%LocalAppData%\Temp下。这个目录里的文件基本都是程序运行中解压、下载或暂存产生的,程序经常来不及清理就退出了。清空它一般不影响任何软件的正常使用,前提是先退出正在运行的软件、浏览器和开发工具。如果系统提示“文件正在使用”,跳过那几个就好。

第二类是浏览器缓存。浏览器内核的缓存目录一般位于%LocalAppData%下,比如某主流浏览器的User Data\Default\Cache。删除缓存只会让下次打开网站时第一次加载慢一些,不会影响收藏夹、书签和登录状态,因为这些属于配置数据,存在另外的目录。

第三类是开发工具的包缓存。用过现代编程语言的人都知道,包管理器默认会把下载的依赖包存一份在用户目录下,比如%LocalAppData%下的npm-cache、pip、pnpm-store。这类目录可以无限增大,删除后只是下次拉依赖时重新下载而已,不影响项目运行。

第四类是渲染缓存。很多应用为了加速启动,会把编译过的渲染资源放在类似GPUCache、Code Cache的目录里。删掉之后应用第一次启动会稍微慢几秒,但没有任何功能损失。

第五类是崩溃转储和日志文件。很多软件会把崩溃时生成的 dump 文件、长时间的 debug 日志堆在 AppData 里。这类文件名义上用于排查问题,但普通用户基本用不上,清理它们是最低风险的回收空间方式。

2.3 哪些目录是配置和账号数据,动了就麻烦

另一类目录,看起来体积也很大,但里面的数据是“不可再生”的,清了就真的没了。

账号登录态的缓存文件包含登录令牌、会话密钥,一旦删除,账号就会被强制登出,需要重新输入密码。虽然不能算灾难级事故,但在清理时完全没必要动它们。

应用配置和插件数据,如果你用的软件支持自定义主题、插件、快捷键,这些设置大多存在 AppData 下对应的软件目录里。删掉后恢复原样非常麻烦,尤其是开发工具、图形软件、邮件客户端这类配置复杂的,可能要花好几个小时重新配置。

数据库和聊天记录,社交软件的本体数据库、聊天记录里的图片视频、游戏云同步的本地副本,这些都属于用户资产。很多人以为“清理社交软件缓存是安全的”,但如果没有找准目标,清掉的可能是你没备份的聊天图片和接收的文件。更稳妥的做法是在社交软件自身的设置界面里做存储空间管理,不要直接在文件系统里动手。

正因为这样,我们的清理策略应该是:只针对缓存类目录执行删除,对配置和用户数据类目录只看不动。

3. 用 Codex 定位 80GB 垃圾的完整实操

3.1 先动手还是先动脑:为什么选脚本扫描

在开始动手之前,我先把 C 盘清理的思路定下来。这一步很关键:我不是让 Codex 直接生成一个删除命令然后无脑执行,而是先让它帮我“摸清家底”。

所谓摸清家底,就是对 AppData 目录做一轮完整的空间扫描,输出每个子目录的占用大小,并按体积排序。这样就能一眼看到:到底哪些文件夹在吃空间,它们的体积分别是多少,是否属于可清理缓存。整个过程分三步:第一步扫描,第二步分析,第三步处理。

我选择用 Codex 生成 PowerShell 脚本而不是装图形软件,有几点考虑。第一,脚本可以精确控制扫描范围,不会像某些全盘分析工具那样建半天索引还没结果;第二,脚本输出的结果可以直接给 Codex 分析,相当于把“人工审计”这一步自动化了;第三,后续生成清理列表时,脚本可以带上安全白名单逻辑,避免误删配置。

3.2 让 Codex 生成磁盘扫描脚本

我给 Codex 输入了一段需求描述:

“写一个 PowerShell 脚本,扫描C:\Users\当前用户名\AppData目录下每一个直接子文件夹的大小,包括隐藏文件和系统文件,输出每个文件夹的总大小(GB),并按大小降序排列。同时标记出每个文件夹类型,比如缓存、日志、配置、用户数据等。”

Codex 生成的核心脚本长这样(用户名我做了脱敏处理):

$basePath = "C:\Users\你的用户名\AppData" $results = Get-ChildItem -Path $basePath -Directory -Force | ForEach-Object { $folder = $_.FullName $size = (Get-ChildItem -Path $folder -Recurse -Force -ErrorAction SilentlyContinue | Measure-Object -Property Length -Sum -ErrorAction SilentlyContinue).Sum [PSCustomObject]@{ Folder = $folder SizeGB = [math]::Round(($size / 1GB), 2) } } $results | Sort-Object SizeGB -Descending | Format-Table -AutoSize

这里说明一下原理:脚本对 AppData 下每一个直接子文件夹做递归遍历,统计所有文件的Length属性之和,再除以 1GB 转成直观的 GB 数字。-Force参数确保隐藏文件和系统文件也能被统计到,-ErrorAction SilentlyContinue用来跳过那些没有权限访问的目录,避免脚本中断。

有一点必须提醒:直接对 AppData 做全量递归扫描,速度会比想象中慢很多。对于 80 多 GB、几十万个文件的目录,可能要跑 10 到 20 分钟。如果觉得太慢,可以先只扫第一层子目录,或者让 Codex 改成一个限制递归深度的版本。我当时让 Codex 加了一个参数,把递归深度限制为 3 层,扫描速度提升了不少,而且足够找到大文件所在。

扫描结果输出后,我看到了一个清晰的列表:占据前十名的目录分别是什么,每个目录占了多少 GB。其中最大的两类是浏览器的缓存目录和一个办公软件的视频缓存,加起来超过 40GB;其次是开发工具的包缓存,约 20GB;Windows 更新留下的缓存包约 12GB;其余是各种日志和临时文件。

3.3 根据扫描结果锁定清理目标

有了扫描结果以后,Codex 的价值才真正体现出来。我没有逐个人工判断,而是把输出结果直接贴给 Codex,然后问:“根据这些目录类型,哪些可以安全清理?哪些不能动?给出一个建议清单,并说明每项的原因。”

Codex 很快把扫描结果分成三类:绿色为可再生缓存,可清;黄色为可选清理,需要退出相关程序;红色为配置和用户数据,不动。比如浏览器Cache和GPUCache属于绿色;某个渲染工具的 Cache 属于绿色;聊天工具的文件接收目录属于黄色,因为里面可能有用户文件;开发工具的配置目录属于红色。

这一步让我意识到一个很重要的点:AI 助手能做的不只是帮你写脚本,还能充当安全审查员。在真正执行删除之前,先让 Codex 给出一个风险分级清单,能极大避免误删。

我把 Codex 建议清理的目标单独汇总成了一张表:

目录类型典型路径位置是否建议清理注意事项
临时文件Local\Temp建议清理先退出浏览器和办公软件
浏览器缓存Local\浏览器目录\Cache建议清理不影响收藏夹和登录状态
开发包缓存Local\npm-cache、pip、pnpm-store建议清理下次拉依赖需要重新下载
崩溃转储Local\CrashDumps可选清理排查故障前建议保留
聊天文件数据库Roaming\聊天工具账号目录慎重尽量用软件自带空间管理

拿到这张表之后,我才开始正式清理。

4. 安全清理四步走:给 C 盘回血 80GB

4.1 用 Windows 自带工具做基础清理

清理的第一步,不是马上进 AppData 手动删除,而是先用 Windows 自带的“存储感知”和“磁盘清理”处理系统级可回收空间。

打开“设置 > 系统 > 存储”,可以看到系统给出一个磁盘占用饼图。点击“临时文件”,系统会自动扫描可清理项,比如“传递优化文件”“Windows 更新清理”“缩略图”“回收站”。这里可以直接勾选并删除。这一步通常能清出几 GB 到十几 GB,而且全程无风险。

接着使用传统“磁盘清理工具”。在运行框里输入cleanmgr,选择 C 盘,会自动扫描可清理项目。想清理“Windows 更新清理”的,需要先点击“清理系统文件”。这一步对老电脑尤其有效,因为系统更新留下的旧组件包和备份文件动辄十几 GB。

做完这两步之后,系统的“虚拟内存”和“休眠文件”如果占用太大,还可以考虑把休眠功能关闭,或者把虚拟内存移动到其他盘。不过这两个操作影响因人而异,我这次没有动它们,先看 AppData 清理能释放多少空间。

4.2 针对 AppData 缓存的定点清除

基础清理完成后,我回到 AppData 目录,按 Codex 给出的清单进行定点删除。这里有个操作原则:不要一次性全选删除,要对每个目标目录单独操作,并且每删一个稍加验证。

我使用的命令是 PowerShell 的Remove-Item。比如删除某个目录的 Cache 子目录:

Remove-Item -Path "C:\Users\你的用户名\AppData\Local\某目录\Cache\*" -Recurse -Force -ErrorAction SilentlyContinue

注意,这里删的是 Cache 目录下的内容,不是 Cache 目录本身。有些程序会在内存中持有缓存文件的句柄,删除时可能报“正在使用”。遇到这种情况直接跳过,关掉对应程序后再删一次。强杀进程的方式不可取,容易让正在运行的软件崩溃,甚至把未保存的数据一起带走。

清完浏览器缓存和 GPUCache 后,我再清理开发工具的包缓存。这里有个细节很重要:如果在命令行里直接删pnpm-store或npm-cache,那么你所有项目里的依赖目录暂不受影响,但等你下次执行 install 时,包管理器发现仓库文件缺失,需要重新下载所有依赖。所以这个操作会带来一定成本,清之前要确认近期不会在离线环境下安装项目。

之后清理 Temp 目录。清空%LocalAppData%\Temp通常能回收几个 GB,而且完全不伤筋骨。如果系统提示有文件被占用,直接选择跳过就行。更彻底的做法是清完后重启电脑,让上次开机无法释放的锁文件得到释放。

这里我还想多说一句:为什么用Remove-Item而不是送到回收站?因为这些缓存文件进回收站,等于又把 C 盘空间占了一份,对清理没有意义;而且缓存是可再生的,不需要抢救。在放空回收站之后,空间才会真正回到可用状态。

4.3 清理后的效果与空间去哪儿了

整套流程走完之后,我重新用 Codex 生成的扫描脚本跑了一遍,结果 AppData 从 87.81GB 降到了 34.6GB。加上前面的系统更新清理,C 盘可用空间从 2.3GB 变成了 81.7GB,从飘红恢复到了正常状态。

这个结果说明什么?说明原来的 87.81GB 里,有一半以上都是可再生缓存和临时文件,真正不能动的配置和用户数据只占剩下的小部分。我要特别声明一点:我这种只清缓存类目录的策略偏保守,没有去碰任何配置文件和用户数据。如果还想更进一步,可以把社交软件的聊天文件存储位置永久迁移到其他盘,或者把大型软件自带的下载目录改到其他盘,这样未来 AppData 的增速会明显下降。

清理完成后,我验证了几个关键功能:浏览器收藏夹还在,登录状态还在(缓存和登录态是两码事);办公软件和开发配置没有丢;项目的依赖目录仍然可用。这说明本次清理在“安全”和“空间回收”之间取得了平衡。

5. 高频问题与排查实录

5.1 常见问题速查表

写这篇分享之前,我很清楚很多读者遇到的场景不一定和我完全一样。所以我把相关的高频问题整理成一张速查表,遇到类似情况可以先对号入座。

现象可能原因处理方式
C 盘爆红但 AppData 占比不高休眠文件、虚拟内存、系统更新备份占用用cleanmgr清理系统文件,必要时关闭休眠
Temp 目录清空后马上又满了有程序持续写临时文件退出对应软件,检查是否有常驻后台
删缓存时提示文件被占用程序正在使用缓存文件关闭对应程序或重启后再删
浏览器缓存清了,但登录状态丢了误删了 Profile 或 Local State 文件清理前确认只删 Cache / Code Cache 子目录
AppData 越来越大,清理没效果聊天记录和开发缓存持续增长用软件自带空间管理,配合定期清理脚本
扫描脚本跑得很慢文件数量太多,全量递归导致限制递归深度,或改用多线程扫描

5.2 独家避坑技巧

最后分享几个我实操中攒下来的经验,这些不是看普通文档能学到的。

第一,不要用很多安全软件的“垃圾清理”一键扫 C 盘。这类工具清理逻辑不透明,经常把一些你不希望删的缓存顺手清掉,有的还带弹窗。相比之下,用 Codex 生成脚本做审计式清理,每个目标都是自己确认过的,安全系数高很多。

第二,删除任何一个 AppData 下的目录之前,先做一次“重命名测试”。怀疑某个目录没用了,不要直接Remove-Item,先把目录改名为xxx_bak,然后正常使用电脑几天。如果一切正常,再回来彻底删除。这个动作成本极低,但能规避掉大部分误删风险。我当时对几个不确定的目录就是先改了名,等过几天确认没问题再清理。

第三,可以把这次用 Codex 生成的扫描脚本保存成.ps1文件,放在桌面或网盘里。以后每季度跑一次,看到 AppData 体积超过某个阈值就顺手清理一轮。不用每次都重新让 AI 生成,脚本可以长期复用,也可以让 Codex 定期帮你改进。

最后一点提醒:磁盘空间清理,核心思路永远是“先分析,后动手;先备份,再删除”。我的做法是先让 AI 当审计员,再让 AI 当执行员,最后自己当审批员。三重把关,才能在“省空间”和“不丢数据”之间做到两全。

写到这里,想起一个事。我这次清理完之后,隔了一周又看了一次 AppData,发现它又涨了 7GB 多。这说明 AppData 的增长是持续性的,一次清理并不等于一劳永逸。我现在养成的习惯是:每周看一眼存储感知,每月跑一次扫描脚本,每季度做一次全面清理。如果你这次按同样的思路把 C 盘救回来了,建议把“长期监测”也变成自己的固定动作。毕竟,在电脑的使用生涯里,空间管理不是一次性项目,而是一个细水长流的日常。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询