サムネイルキャッシュが一定容量を超えるとゼロクリアされます

Anonymous
2009-11-28T20:31:34+00:00

Win7 HP 64bitです。アップグレード版、VISTA HP 32bitの上にクリーンインストールしました。

私はデジカメ趣味なので画像ファイル(元はRAWファイル(NIKON NEF形式)ですが観賞用はJPEGファイルに変換)を数多く保有しており、フォルダを細分化して保存しています。フォルダは96pixelの「大きなアイコン」表示としており、サムネイル表示されます。初回に開いた時はサムネイルが上からパッパッと順次表示されますが、それはキャッシュされますので次回以降は一瞬で表示され快適です。しかし時々キャッシュがゼロクリアされるため、2回目以降であっても再度サムネイル表示をし直すという現象が発生しています。

WinXPの頃はフォルダごとに Thumb.dbファイルが作成されていましたが、Win7ではそれがなく、調べたら、

C:\Users\ユーザー名\AppData\Local\Microsoft\Windows\Explorer に、一括保存されていることが分かりました。ファイル名はサイズ毎に決められており、デフォルトでは thumbcache_32.db、thumbcache_96.db、thumbcache_256.db、thumbcache_1024.db の4ファイルです。同じフォルダ内に、thumbcache_idx.dbなど複数のファイルもあります。

大きなアイコン表示なので、キャッシュが蓄積されると thumbcache_96.dbの値が増加してゆきますが、経験的に 500MBほどを超えると、何らかのきっかけでこれらがゼロクリアされ、再度 1KBに戻ってしまいます。そうなるとフォルダを開いたときにサムネイルキャッシュを一から作り直すこととなります。

そのため容量の上限規定があるのかとレジストリを調べたら、

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ThumbnailCache

の中に同様に、MaxCacheFileSize32、MaxCacheFileSize96、MaxCacheFileSize256、MaxCacheFileSize1024の4キーがあり、通常設定は DWORD値「0」となっていました。

そこで実験的にいずれも DWORD値を「2000000000」 (2GB ? と推定)に変更してみました。

そうするとキャッシュは800MBくらいまで増え続けますが、それを超えるとやはりゼロクリアされてしまいます。

サムネイルキャッシュの上限値の設定方法をご存知の方がいらっしゃれば、ご教示いただきたくお願い致します。

WEBなど色々調べましたが、これに対する解は見つかりませんでした。また、VISTAの時はこの問題はなく、意識していませんでした。

家庭向け Windows | 以前の Windows バージョン | ファイル、フォルダー、ストレージ

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

45 件の回答

並べ替え方法: 新しい順
  1. Anonymous
    2012-07-28T18:17:22+00:00

    幾度も有り難う御座います。

    ご指摘の ”ThumbnailCache内にあるLocation以外のレジストリを削除する。” を試しましたがやはりリセットされて2度目の再起動後レジストリエディタでLocationを開くと同時になぜかブラックアウトになりました(強制再起動)それで蓋を開けてみたら拡張メモリーが とても熱くてビックリしました、他の作業は(FULL画面動画再生やこのコメント記入)殆ど熱くなりません、CPUとGPUの温度はガジェットで随時みれます(40度くらい、メモリーの温度を表記するソフトがありません)

    レジストリエディタで ”ThumbnailCache Location” 以外のものは開けます。

    Locationは開かなければ削除はできると思いますが、何か他にも影響が出ないか心配になってきました(削除するともとのCドライブにファイルができてしまう)

    他にレジストリーの変更という検索でありましたができたら感想をお願いします。

    Windows Vista または Windows 7

    1.次のレジストリ サブキーを削除します。

    ◦HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Bags

    ◦HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\BagMRU

    ◦HKEY_CURRENT_USER\Software\Microsoft\Windows\ShellNoRoam\Bags

    ◦HKEY_CURRENT_USER\Software\Microsoft\Windows\ShellNoRoam\BagMRU

    ◦HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\BagMRU

    ◦HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags

    x64 ベースの Windows Vista または Windows 7 では、次のレジストリ サブキーを削除します。

    ◦HKEY_CURRENT_USER\Software\Classes\Wow6432Node\Local Settings\Software\Microsoft\Windows\Shell\Bags

    ◦HKEY_CURRENT_USER\Software\Classes\Wow6432Node\Local Settings\Software\Microsoft\Windows\Shell\BagMRU

    2.次のレジストリ サブキーを再作成します。

    ◦HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\BagMRU

    ◦HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags

    x64 ベースの Windows Vista または Windows 7 では、次のレジストリ サブキーを再作成します。

    ◦HKEY_CURRENT_USER\Software\Classes\Wow6432Node\Local Settings\Software\Microsoft\Windows\Shell\Bags

    ◦HKEY_CURRENT_USER\Software\Classes\Wow6432Node\Local Settings\Software\Microsoft\Windows\Shell\BagMRU

    3.手順 2. で作成したレジストリ サブキーで [BagMRU Size] レジストリ値を作成してから 5000 に設定します。

    よろしくお願いします

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  2. Anonymous
    2012-07-27T20:37:02+00:00

    以下のことを試してもだめですか?

    ・全く新しいフォルダを作成し、それをキャッシュフォルダにする。

    ・そのフォルダの名前とアドレスに2バイト文字(日本語、全角スペース )を含まない。

             良い例: 「D:\Cache」      悪い例:「D:\キャッシュフォルダ」

    ・ThumbnailCache内にあるLocation以外のレジストリを削除する。

    ・キャッシュフォルダにアクセス拒否を設定しない。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  3. Anonymous
    2012-07-27T20:05:39+00:00

    何度も返答して頂き大変有難く思います。

    今回は、今まで以上の最悪事項に陥って対処なきと思われます。

    改善策のレジストリ3項目で良くなったのですが、その後レジストリも触らず使っていて、サムネファイルのリセットがかかった場合もうひとつのフォルダを指定して再起動で元通りの縮小ファイルに戻せていたのですが、今日いつもどおり再起動で戻ってたファイルがドライブを開いただけでリセットされるようになってしまいレジストリを変更しながら数回再起動してもだめになりました。

    新しいソフトやバージョンはあげた覚えもなく原因不明の状態でもうOSが不具合を起こしてるとしか思えない状態です。

    時間はかかりましたがシステムの回復も試して、レジストリの3項目も書きなおしてすべて縮小表示をしてファイルサイズを確かめてもすぐにリセットされて1024Kになり駄目になりました。 もう気力もなくなりました。 いろいろアドバイス有り難う御座いました。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  4. Anonymous
    2012-07-23T16:05:19+00:00

    何度も有り難う御座います。

     私もβ版の8「K-Lite Codec Pack(FULL)」を使ってますがそのほかは DVDを3Dに変換して再生できるCyberLink PowerDVD10ULTRAを使っていて それと映像ファイルを3D変換するためにDVD FabALLInONEを使用しています Fabに関してはなぜか変換保存が失敗ばかりでアンストしインストしなおした後動かしていません。

    ファイルが壊れているとリセットがかかるというのは初耳でした もしかすると壊れているファイルがあるかも知れません(FLVは特に)

     一応WINDOWS立ち上げ時読み込みサムネファイルフォルダのほかにもうひとつ似通った名前でコピーしといてリセットされたらレジストリーで読み込みフォルダをコピーのほうにして再起動して やり過ごしています

    いろいろ有り難う御座います。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  5. Anonymous
    2012-07-22T21:18:36+00:00

    私の環境ではGomEncoderでファイルの追加からサムネイルを縮小表示させてもキャッシュはリセットされませんでした。

    行き詰まり?さんの環境では動画再生用のコーデックは何がインストールされてますか?

    ここからは私のいい加減な憶測です。

    エクスプローラで動画のサムネイルを作成するとき、インストールしてある動画再生用のコーデックを使用しています。

    このとき1つの種類の動画に対して複数のコーデックが存在する場合、どのコーデックが使用されるか分かりません(おそらく優先順位とかがあるのでしょうが)。

    行き詰まり?さんがエクスプローラで動画のサムネイルを表示したときに使用されたコーデックと、GomEncoderの追加ボタンを押したときに表示されるサムネイルに使用されるコーデックがもし異なる場合、エクスプローラで表示されるものとは異なるサムネイルが作成されることになります。

    また、OSがサムネイルのキャッシュをリセットするのは、使用しているサムネイルファイルが壊れているとOSが判断したときです。

    よって、すでに存在するサムネイルと異なるサムネイルが作成された場合、OSは元のサムネイルファイルは壊れていると判断し、そのサムネイルファイルをリセットします。

    以上の憶測がもし正しければ、ソフト使用時にサムネイルがリセットされる問題は、複数の種類の動画に対してそれぞれ単一のコーデックのみを用意すれば解決されることになります。

    現に私の環境ではコーデックは「K-Lite Codec Pack(FULL)」のみがインストールされており、ソフト使用時にサムネイルはリセットされません。

    行き詰まり?さんの環境でもし複数のコーデックがインストールされているのなら、一度コーデックをすべてアンインストールし、1つのコーデックパック(K-Liteやffdshowなど)をインストールされてはいかがでしょうか?

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません