前些日子我准备把库里积灰的《赛博朋克2077》下载下来玩,结果弹窗提示“磁盘空间不足”。我愣了,明明C盘还剩40G,专门装Steam的D盘也有150G空闲,怎么就不够了?点进去一看,D盘可用空间只剩2GB,我明明记得昨天还有150G的——那种感觉就像硬盘自己“蒸发”了一样。
第一反应:中病毒了?还是Steam偷偷下载了东西?
我第一反应是中了挖矿病毒,赶紧打开任务管理器看磁盘占用。结果发现Steam在后台疯狂读写,但下载明明是暂停的。更诡异的是,我在D盘根目录找了一圈,没发现哪个文件夹特别大,属性显示已用空间350GB,可把所有文件夹选中查看大小才200GB——那150GB到底去哪了?
折腾半天,终于发现罪魁祸首
后来想起Steam有个“着色器预缓存”功能,会在你安装或更新游戏时自动下载显卡优化文件。这些文件藏在Steam\steamapps\shadercache里,而且不会在普通文件列表里直接显示真实大小。我打开那个文件夹,好家伙——光是《绝地求生》一个游戏的缓存就占了60GB,加上其他游戏总共150GB。原来我的硬盘并没有消失,只是被这些“隐形胖子”塞满了。
着色器缓存为什么这么巨大?
Steam为了让不同显卡的玩家都能流畅运行游戏,会频繁更新各种预设渲染方案。每个游戏都有独立的缓存目录,而且Steam不会自动清理旧版本。我机器上装过30多个游戏,退役的、卸载的,它们的缓存全留在那里。更气人的是,就算我把游戏本身删掉,着色器文件也会赖着不走。
第二个坑:下载缓存与旧版本备份
除了着色器,我还发现steamapps\downloading和steamapps\temp里残留了大量下载过程中的碎片文件,加起来也有20多GB。另外,Steam设置里如果开启了“为已安装的游戏保留旧版本二进制文件”,那每更新一次游戏就会留下一份完整的旧安装包,时间久了简直恐怖。
我怎么找回那150GB的?
手动清理过程其实很简单。我首先彻底关掉Steam,然后进到steamapps\shadercache,把里面那些已经卸载游戏的文件夹直接删掉。接着用Steam自带的“下载缓存清理”功能:设置→下载→清空下载缓存。最后在库列表右键每个游戏→属性→更新,关掉“保留旧版本二进制文件”并删掉已有的备份。三步下来,D盘瞬间多出200GB。那一刻,就像失而复得一样舒坦。
这件事让我反思
现在想想,Steam这些设计初衷是好的,为了让游戏运行更稳定、更新不丢进度。但它从没提醒过用户这些后台文件在悄悄膨胀。我有个朋友更惨,他C盘是128GB固态,Steam把着色器缓存默认写到了C盘,结果某天重启后系统报错“无法找到操作系统”,实际上就是缓存把引导分区塞爆了。
如果你也发现硬盘空间莫名其妙减少,特别是刚下载或更新过游戏之后,别急着重装系统。先检查Steam的着色器缓存和下载临时文件夹。相信我,那种空间消失的错觉背后,往往只是一堆你不需要的缓存文件在作怪。