在 Windows 中,经常会出现与图标有关的问题:无法正常显示软件图标、快捷方式小图标丢失、开始界面图标变白……遇到这种情况时,反复刷新起不到任何作用。而出现这些问题的一大原因,是 Windows 为了提升图标显示速度,将图标文件缓存在了 IconCache.db 文件中。一旦更新了图标或修改了源文件的位置,缓存得不到及时刷新,就会出现「白图标」的情况。

如何手动刷新 Windows 的图标缓存呢?通常有三种方法。

方法一 删除 IconCache.db 文件

进入 C:\Users\用户名\appdata\local 目录,直接删除 IconCache.db 文件,重启电脑。

需要注意的是,这一步中 appdata 文件夹和 IconCache.db 文件都是隐藏的系统文件,需要手动输入地址或者显示隐藏文件。


IconCache.db 文件

IconCache.db 文件本质上是一个图标属性文件,在删除后系统会自动重建一个,由它导致的问题会被系统自动修复。

这个方法简单快捷,适用于大部分情况。

方法二 Windows 自带的磁盘清理工具

有时候 IconCache.db 文件会被其他软件占用,那就试试 Windows 官方提供的清理工具。

打开开始菜单,找到 Windows 管理工具 → 磁盘清理 → C 盘 → 勾选「缩略图」→ 确定。即可将图标缓存文件顺利删除。


磁盘清理工具

最后重启电脑即可看到图标刷新的效果。

方法三 批处理清除图标缓存数据库

如果上面两个方法都无法解决问题,那就试试更暴力的批处理吧。

这段批处理文件会删除 IconCache.db 文件,同时还清理 thumbcache.db 文件和注册表中的 IconStreams、PastIconsStream 两个值。清理速度很快,除了会重启一下资源管理器外没有副作用。

打开记事本,将下面这段代码复制到记事本中,保存为 图标缓存清理.bat 文件,双击打开即可。

rem 关闭Windows外壳程序explorer

taskkill /f /im explorer.exe

rem 清理系统图标缓存数据库

attrib -h -s -r "%userprofile%\AppData\Local\IconCache.db"

del /f "%userprofile%\AppData\Local\IconCache.db"

attrib /s /d -h -s -r "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\*"

del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_32.db"
del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_96.db"
del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_102.db"
del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_256.db"
del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_1024.db"
del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_idx.db"
del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_sr.db"

rem 清理 系统托盘记忆的图标

echo y|reg delete "HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\CurrentVersion\TrayNotify" /v IconStreams
echo y|reg delete "HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\CurrentVersion\TrayNotify" /v PastIconsStream

rem 重启Windows外壳程序explorer

start explorer

(这段代码在网上广为流传,最初作者已经不可考。)

如果上面这三种方法还是没能解决图标问题,说明问题已经超出了「图标缓存」的范畴,需要考虑其他方面的影响(比如软件安装错误、软件图标丢失等)。