twitter ■お問い合わせ当サイトへのリンクサイト仕様

現在位置 > LostTechnology > Windows7 > アイコンの表示がおかしくなった場合の対処法

アイコンの表示がおかしくなった場合の対処法

(2012/12/30)

再インストールをせずに長期間Windowsを使っていると、正しいアイコンが表示されなくなるなど、アイコンの表示がおかしくなることがあります。これはWindowsがアイコン表示を高速化するためにキャッシュしているファイルのデータに不整合が生じたためです。キャッシュファイルは隠し属性になっている%LOCALAPPDATA%¥IconCache.dbなので、これを再生成させれば問題は解消されます。また、アイコンキャッシュファイルを再生成させることでファイルサイズが小さくなり、Explorerなどでのファイル表示が早くなるはずです。Explorerでのファイル表示に時間がかかるようになっている場合もキャッシュの再生成を実行するメリットがあります。再生成を行なうための具体的な手順は以下の通りです。

  1. %LOCALAPPDATA%¥IconCache.dbを削除する。
  2. 空のファイルとして%LOCALAPPDATA%¥IconCache.dbを作成。
  3. Windowsを再起動するか、一度ログオフして再生成を実行する。

これをいちいち手作業で実行するのも面倒だと思いますので、ログオフまでを自動化するバッチファイルを作成してみました。必要でしたら以下のサンプルバッチファイルをダウンロードして利用してください。もし、UACに邪魔されてうまく動かない場合はIconRefresh.batを右クリックして、管理者として実行を選べば動作します。

@echo off
echo アイコンキャッシュの再生成を行ないます。
echo 一度ログオフするため、実行中のアプリケーションを終了してください。
pause
attrib -h %LOCALAPPDATA%¥IconCache.db
del %LOCALAPPDATA%¥IconCache.db
fsutil file createnew %LOCALAPPDATA%¥IconCache.db 0
rem OSによっては↓じゃないとダメかも?
rem copy nul %LOCALAPPDATA%¥IconCache.db
shutdown /l

バッチファイルを実行すると、まず警告メッセージを表示してキー入力を待つようにしてあります。不要ならばpauseを削除するかremでコメントアウトすると確認なしにすることが可能です。隠し属性だとファイルの削除ができないため、attribコマンドで隠し属性の解除を行ない、delコマンドで削除を行なっています。fsutilコマンドは0byteの空ファイルの作成に使っていますが、確かWindowsXP以降のコマンドだったと思うのでWindows2000にも対応させたい場合はcopy nulを利用したほうがよいかもしれません。最後にshutdownコマンドでログオフを行なっています。ログオフではなく再起動にしたい場合はshutdownコマンドを/r /t 0オプションで実行するとよいでしょう。オプションの/t 0は再起動までの秒数なので30にすれば30秒待機してからの再起動にできます。

アイコンキャッシュの再生成を行なっても頻繁にアイコンの表示がおかしくなるようであれば、レジストリを書き換えてアイコンキャッシュサイズを変更するのがよいかもしれません。Windows7でも同じ効果があります。