用Steam这些年,我买了几百个游戏,硬盘也从1TB换到4TB再换到8TB,可每次清理空间时总发现一个奇怪的现象:明明删掉了不少游戏,磁盘占用却只降了一点点。直到某天深夜,我盯着Steam库发呆,一个念头突然蹿上来——那些下载完安装好之后,Steam到底在我的硬盘里留了些什么垃圾?
一次偶然的发现
事情得从今年年初说起。当时我给电脑换了一块三星2TB的SSD,把系统、常用软件和十几个常玩的游戏装了上去。用了三个月,系统提示C盘空间不足,我纳闷了:游戏又没装C盘,怎么C盘满了?打开SpaceSniffer一扫描,好家伙,一个叫C:\Program Files (x86)\Steam\steamapps\downloading 的文件夹,足足吃掉了68GB!而我印象中最近根本没下过什么大作。点进去一看,里面躺着好几个命名乱码的子文件夹,每个都有几GB到十几GB不等。这才意识到,Steam根本没把下载缓存清干净。
Steam缓存到底是什么
简单说,Steam的缓存分为两大部分。一个是下载缓存,就是上面那个 downloading 文件夹。每次我点击“下载”后,Steam会先把游戏文件打包下载到这里,一边下一边安装。如果下载中途中断、暂停、或者安装报错,这些临时文件就赖着不走了。另一个是着色器缓存,躲在这个路径:Steam\steamapps\shadercache。每个游戏都会有一个专属的id文件夹,里面存放着针对我这张显卡预编译好的着色器。Steam官方说这能提高游戏载入速度、减少卡帧——这点我不否认。但问题是,当我删掉一款游戏之后,它的着色器缓存并不自动跟着删除。日积月累,几百个id文件夹堆在那,像没人认领的行李。
灰色地带的临时文件
除此之外,depotcache 文件夹也经常被忽略。这里面是Steam客户端更新时留下的旧版本文件包,以及游戏Manifest的备份。一部分对我来说毫无价值,可Steam就是不肯主动删。还有 logs 文件夹,记录着各种连接错误、下载日志,文本文件堆多了也是空间杀手。最隐蔽的是 Steam\appcache,里面有每个人的头像缓存、商店页面缩略图、甚至上次浏览过的物品背景图。我见过一个朋友的电脑,这个文件夹占到了4GB——全都是些早就不看的图片缓存。
我的第一次大清理
知道这些之后,我决定亲手把“脏东西”掏出来。我先关了Steam客户端,进入 steamapps\downloading,把那些看起来不像正在下载的文件夹全删了。接着转到 shadercache,对照已安装游戏列表,将那些已被卸载游戏的id文件夹手动删除。这个过程很耗时,得一个一个核对id和游戏名,有些id根本找不到对应游戏,我干脆大胆全删了。清理完重启Steam,一口气释放了将近90GB的空间。心里爽了几秒,但很快便发现某些游戏的第一帧加载变慢了——被删掉的着色器缓存在下一次启动时得重新编译,CPU飙到80%,风扇呼呼转了两分钟才平复。我坐在电脑前盯着任务管理器,有点后悔,又觉得值得。
缓存的价值与麻烦
从那以后我才真正理解Steam缓存的存在逻辑。对于我这种网络不稳定、显卡也不算新的玩家来说,着色器缓存简直是救星。没有它,每次进入《荒野大镖客2》都要等三分钟着色器编译,有时还会中途卡死。而下载缓存则是Steam保证下载完整性的手段——断点续传、校验、解压都依赖这些临时文件。但Steam在清理机制上确实不够贴心:卸载游戏时不顺带删除对应的着色器缓存,下载完成后的乱码文件夹也不自动清除,导致很多用户的硬盘被这些“僵尸数据”越填越满。
我也遇到过更棘手的情况:有一次Steam更新游戏时崩溃,下载缓存文件损坏且没被删除,结果我反复点了两天的验证完整性都没修好,最后还是手动清空 downloading 文件夹,重新下载才解决。这些经历让我对缓存既感激又无奈。
一点摸索后的认知
现在我会定期手动检查这三个地方:downloading、shadercache、depotcache。每个月花十分钟看一眼,把明显没用的文件删掉。可我从来不动正在使用或近期更新过的游戏缓存——除非遇到损坏问题。我的原则是:缓存可以留,但不能让它无声无息地霸占我的硬盘主权。这种洁癖让我更了解自己的电脑,也更容易在打不开游戏时快速定位原因。毕竟,当一块硬盘被塞爆的时候,什么好心情都会变成烦躁。
