アイコンの表示が変になったら

概要

Windowsのデスクトップやエクスプローラーのアイコンの表示が変になったときに試す方法です。

これは、アイコンキャッシュが壊れてしまうことが主な原因です。

アイコンキャッシュとはアイコンを素早く表示するためにキャッシュ(一時)ファイルとしてまとめて管理されています。

最初はアイコンを表示するためにバラバラなファイルを読み込む必要がありますが、それをキャッシュすることで次回以降はアイコンキャッシュのファイルだけを読み込めばアイコンを表示することができるのです。これは読み込みが遅い低速なハードディスクを使っているほど効果が高く表れます。高速なSSDを使っている場合はキャッシュが在るときと無いときでの差が小さくなります。

設定で表示色を少なくしている場合は、それ以上の色を表示することができないため色が荒くなりますが正常です。現在のWindowsは基本的に32bit色空間で使いましょう。(※古い液晶モニターでは24bitまでしか表示できないものがありました)

解決方法

アイコンの表示を正しい表示に戻すには、アイコンキャッシュを再構築させます。再構築とは、壊れた古いアイコンキャッシュを削除して新しく作り直します。

ここで紹介するのはWindowsのアイコンキャッシュを修復する方法です。アプリケーションで作られているアイコンキャッシュはこちらの方法では修復することができません。アプリケーションの設定でアイコンキャッシュ消去再構築が可能な場合はそれをお試しください。

万が一別のファイルを誤って削除してしまったときのために、C:ドライブのバックアップを作成することをお勧めします。

Windows10

Cドライブを選択して表示のタブから「ファイル名拡張子」と「隠しファイル」を有効にします。
検索ボックスに[iconcache*.db]と入力します。
*はそれ以降の文字(_16や_32など)も含むことを意味します。

複数のアカウントがある場合は自分のアカウントのみを選択するか、Cドライブからの検索ではなく[C:>ユーザー>アカウント名>AppData>Local]から検索しましょう。すべてのアカウントのアイコンキャッシュファイルをメンテナンスする場合、削除する権限がある場合はC:ドライブからの検索でまとめて削除して構いません。

エクスプローラー等で使用中のファイルは削除できずに残ります。 削除されたファイルで解決できた場合はそれで構いません。 解決できていない場合は削除できなかったファイルが影響していることが考えられます。

削除できなかったファイルを削除するには、エクスプローラーを起動せずにコマンドで削除を実行します。

シンプルな起動で削除できるようにする

セーフ ブートの代替シェルで起動するとコマンドモードになります。

通常のセーフモードで削除できないファイルを削除したいときに使います。通常セーフモードはエクスプローラーが動作しているため、エクスプローラーで使用中のファイルが削除できません。

エクスプローラを起動しない代替シェルのセーフモードは表示や動作のために使用中のファイルが最小限になるため、コマンドプロンプトで削除できなかったファイルが削除できるようになる可能性が高くなります。

スタート>Windows 管理ツール>システム構成]で「セーフ ブート」と「代替シェル」を有効にして再起動します。

コマンドで以下の行を入力します。

cd %userprofile%\AppData\Local\Microsoft\Windows\Explorer
   
del iconcache_*.db
explorer

1行目は削除できなかったエクスプローラーのアイコンキャッシュの場所に移動します。
2行目でその場所のiconcache_なんとか.dbファイルを複数削除します。
3行目でエクスプローラーを起動します。
WindowsのGUIが表示されたら「システム構成」を再び開いて、「セーフ ブート」を無効にして再起動すると元のWindowsが起動します。

エクスプローラーを起動せずに代替シェルを「exit」コマンド終了させるとコマンドが使えなくなり、PCの電源ボタンによる再起動が必要になります。その場合、セーフモードを元に戻す操作をしていないため、再び代替シェルのセーフモードが起動してしまいます。

エクスプローラーを起動してもマウスが操作できない状態になっている場合は、キーボードで「システム構成」を開きます。
スタートを開くには[CTRL+ESC]または「Windowsキー」で開くことができます。
移動するときはカーソルの[↑↓←→]や[TAB]キーを使います。
選択するときは[スペース]キー、確定するときは[Enter(エンター)]キーを使います。

Windows10ではビルトインアカウントなどの理由で「explorer」が起動できない場合は、コマンドを使ってセーフモードの解除と再起動が必要です。

bcdedit /deletevalue safeboot
shutdown /r /t 1

1行目のコマンドでセーフブートを解除します。bcdeditは起動プロセスに係わるコマンドです。
2行目のコマンで再起動します。[/t 1]は1秒後に再起動します。省略すると1分後に再起動されます。再起動ではなくシャットダウンで終わりにしたい場合は[/r]を[/s]に変えます。

Windows7

Windows Vista以降では、ユーザーのシステムファイルは
C:\Users(ユーザー)\[ユーザーアカウント]\AppData\Local』にあります。

そこにある『IconCache.db』を削除します。

削除してキャッシュが存在しない場合は、再起動後にアイコンを元のファイルから読み込むことで新しいIconCache.dbが作成されます。次回以降は新しくなったキャッシュを使いアイコンが高速に表示されます。

アカウントのLocalフォルダのIconCache.db

エクスプローラーの検索から捜すこともできます。検索に『IconCache.db』と入力します。自分のアカウント以外のIconCache.dbが検索される場合は、自分のアカウントのIconCache.dbのみを削除しましょう。

検索で探すIconCache.db

アイコンキャッシュのファイルは誤って削除するのを防止する隠しファイル属性であるため、見つからない場合はエクスプローラーの設定で隠しファイルを表示する設定に変更します。

エクスプローラーでALTキーを押すとメニューバーが表示されるので『ツール』の『フォルダーオプション』を表示します。『表示』タブの詳細設定でファイルとフォルダーの表示にある『隠しファイル、隠しフォルダー、および隠しドライブを表示する』を有効にして『OK』を押下します。

エクスプローラーのメニューバーを表示する

隠しファイルや各フォルダーや隠しドライブを表示する

Windows XP

スタートボタンから『検索』を選びます。次に、『ファイルとフォルダすべて』を選びます。

WindowsXPならファイル名の欄に『IconCache.db』と入力します。Windows2000以下なら『ShelliconCache』と入力します。

次に、探す場所に『C:』ドライブ(Windowsがインストールされているボリューム)を指定します。

詳細の項目で『システムフォルダの検索と隠しファイル』と『システム フォルダの検索』と『サブ フォルダの検索」を有効にします。

検索を実行し、見つかったファイルを削除します。

複数のアカウントが使われている場合は、アカウントごとにアイコンキャッシュファイルが作成されているため、複数検索されることがあります。

アイコンキャッシュのフォルダ名に「C:\Documents and Settings\[アカウント名]\Local Settings\Application Data」が表示されていますので、アイコンが壊れているアカウントのアイコンキャッシュファイルを削除します。 Windowsの起動時に再作成されるためすべて削除しても問題はありません。

全く別の場所([\Documents and Settings\]でない場所)に存在する場合は、Windowsのアイコンキャッシュファイルではない可能性がありますので、それは削除しないでください。

再起動すると、新しくアイコンキャッシュが作られ正しい表示に戻ります。

この方法で解決できない場合は、アイコンキャッシュ以外に問題が生じていることが考えられます。その場合は、壊れていないアイコンファイルをコピーする、正常な状態で保存したバックアップから復元する、修復インストールを行うなどが考えられます。

このサイトについてのアンケート

Q1.評価を選んで下さい

Q2.分かり易さについて選んで下さい

Q3.内容について選んで下さい

(ロボットでないことの証明が必要です)