Windows10でサムネイルキャッシュを削除させずにエクスプローラーで高速に縮小表示する

f:id:suits:20180204123806j:plain

結論:Windows10ではSilentCleanupというタスクが動いてサムネイルキャッシュを常時削除してしまうので,サムネイルキャッシュを自動削除・リセットさせないようにレジストリを変更すればよい。

サムネイルキャッシュを削除させないレジストリ

上記は私が作成したレジストリ変更ファイル。ダウンロードしてダブルクリック,警告が出たら「はい」としてレジストリに書き込ませ,再起動すればサムネイルキャッシュは自動削除されなくなる。大型アップデートのたびに再度書き込む必要があるのではないかと思う。

なお,不具合が出ても一切保証できないので,あしからず。

Windows10ではファイルのサムネイルで縮小表示をさせている。写真やPDFファイルなどは,中身を開かなくてもおおよそ内容に予想がつくので大変便利。

しかし,フォルダを変更するたびにファイルサムネイルの縮小表示を描画し直していて,ファイルが大量にあるフォルダでは結構な待ち時間を取られてしまう。

不満に思う人は多いらしく,「Windows10 サムネイル 削除させない」等の質問をしているようだ。しかし,Windows10のこの問題について日本語ではっきりした理由と解決策がともに示されていることがないようなので,まとめておく。

f:id:suits:20180204123751j:plain

まず,エクスプローラーの「表示」ー「オプション」で,「常にアイコンを表示し,縮小版は表示しない」のチェックを外しておく。

こうすることで,サムネイルがアイコンではなく,内容の縮小表示になる。

次に大問題なのが,縮小表示のデータをWindowsで作成するのに,縮小表示のデータ,すなわちサムネイルキャッシュをほとんど保存せずに片っ端から削除してしまい縮小表示がリセットされてしまうこと。

縮小表示のサムネイルデータを作成するのに,ファイルの内容をある程度読み込む必要がある。そのため,縮小表示のデータを作成するのに時間や処理能力が取られるので,サムネイルキャッシュはできるだけ保存しておくことが望ましい。

しかし,Windows10ではサムネイルキャッシュも一時データの一つとして,パソコンにアイドル時間が発生すればすぐに削除してしまうので,縮小表示・サムネイルキャッシュがリセットされるということが生じる。ディスク容量の数%を確保して,溢れたら古いものから削除という方式が妥当で,現行のすぐ削除する方式は読み込むべきデータサイズが大きくなる一方の現在の状況だと不適切な方式だ。

 Windows7やWindows8でも同様の問題は生じているようだが,このときはHDDやSSD等の記憶容量に比例してデータが大きくなったときだけに削除がされていたようだ。しかしWindows10では,コンピューターのアイドル時や,再起動時に削除がされてしまうようで,問題が大きくなっている。

サムネイルキャッシュと同様に,一時データとしてみなされてしまうActiveXでもすぐに削除されてしまう問題があり,この点についてはマイクロソフトが技術的な回答を行っている。

blogs.technet.microsoft.com

具体的には「SilentCleanup タスクが実行される」ことが問題である。

つまり,縮小表示のためのサムネイルキャッシュについて,「SilentCleanup タスクが実行される」対象ではないと明示的に設定できればこの問題は解決できる。

削除さえされなければ,サムネイルキャッシュが長期にわたって残り,縮小表示のための読み込み処理を何度も繰り返しされることがなくなる。新規ファイルだけ縮小表示のサムネイル作成処理がされ,フォルダの内容をすぐに確認することができるようになる。

www.winhelponline.com

「SilentCleanup タスクが実行される」のを回避するためには,2つの方法がある。

1つめは,サムネイルキャッシュフォルダを「SilentCleanup タスクが実行される」対象から外すようレジストリで設定すること。

2つめは,「SilentCleanup タスクが実行される」こと自体をやめてしまうこと。

「SilentCleanup タスクが実行される」こと自体は,コンピューターの動作を最適にするために必要なことも含まれているので,1つめの手段のほうが穏当だろう。

具体的には,レジストリファイルの「HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Thumbnail Cache」エントリーにある,「Autorun」を既定の「1」(実行させる)から「0」(実行させない)に変更すれば良い。

上記リンク先を参考に直接書き換えても良いが,私の作成したレジストリファイルをダウンロードの上,ダブルクリックすれば書き換えは完了する。

サムネイルキャッシュを削除させないレジストリ

ただし,何かあっても保証はできないので使う方の責任で書き込むかは決めてほしい(レジストリの一箇所を書き換えるだけだから不具合が起きる可能性はかなり低いが)。

 

書き換えをしたら,再起動が必要になる。

再起動後は,サムネイルキャッシュが勝手に削除されないので,縮小表示がリセットされず,一度読み込んだフォルダは高速に縮小表示がされるようになる。

f:id:suits:20180204123823j:plain

サムネイルキャッシュは自動で削除されないが,ディスククリーンアップで「縮小表示」を削除対象にしてしまうと,サムネイルをはじめから作り直すことになってしまう。そのため,「縮小表示」はディスククリーンアップのチェックを外して削除対象から除いておく必要がある。

サムネイルキャッシュを削除させない方法については,Windows7について説明したものはいくつかあるが,Windows10ではそのとおり設定できなかったり,Windows10では効果がないものであった。

サムネイルキャッシュを削除させない設定メモ – A2-blog

サムネイルをリセットさせない方法の話 | 旅の道第三停留所

前述したように,解決策として「SilentCleanup タスクが実行される」こと自体をやめてしまう方法もある。その方法を記載しているサイトもあるが,SilentCleanup タスクには必要な機能も含まれているので,全面的に停止するのはマイクロソフトも勧めていないようだ。

【Windows10】サムネイルキャッシュの自動削除を無効にする方法

理屈としては本内容に書いたとおりなので,Windows10では本記事で書いたレジストリの変更だけにとどめたほうが無難ではないかと思う。