IEPのキャッシュ処理


で、「Temporary Internet Files」を検索すればすぐわかると思っていたのですが・・・検索できないのですね。それっぽいところを探していると見つけることができました。というか、Windowsと同じ場所にあったのですぐにわかったのですが。
「HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders」
 ここにあるCacheの値が「\Windows\Profiles\guest\Temporary Internet Files」になっているので「\miniSDカード\Temporary Internet Files」と変更します。忘れずに、今指定した「Temporary Internet Files」フォルダをminiSDに作成します。
 で、Internet Explorerのタスクを閉じ、再度、起動すると・・・ブラウズしても本体のデータ記憶用のメモリは減らず、指定したminiSDのフォルダの方にはファイルが出来ていくのでこれで問題ないかと思います。

もう少し調べてみました。まず、上記のレジストリの値を変更をします。
で、miniSDを抜いた時にどうなるかということですが、特にエラーメッセージは表示されません。問題なくIE Mobileは使用できます。ブラウズしても本体のデータ記憶用のメモリは減らないのでキャッシュは無しの状態だと思います。ここでminiSDを刺すとminiSDの空き容量は減っていくので、レジストリで指定したminiSDのフォルダにキャッシュをしているようです。
 では、miniSDを刺していない状態で再起動をした時にどうなるのか? ひょっとしてレジストリの値が元に戻されたりしないか? と気にはなっていましたがレジストリの値は書き換えたままになっています。で、IE Mobileを立ち上げると本体のデータ記憶用のメモリは減っていくのでキャッシュはしているようです。が、良く調べてみると、キャッシュをしている場所は、「\Windows\Profiles\guest\Temporary Internet Files」ではなく、「\Windows\Temporary Internet Files」の方になっているようです。IE Mobileがこのフォルダをデフォルトだと思っているようです。この状態でminiSDを刺しても「\Windows\Temporary Internet Files」にキャッシュしています。レジストリで指定したフォルダにはキャッシュをしていません。
 この状態で、1度IE Mobileのタスクを閉じもう1度立ち上げると、今度はレジストリで指定したminiSDのフォルダにキャッシュするようになりました。
結論としては、
IE Mobileは、起動時に「HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders」にあるCacheの値のフォルダにキャッシュをする
このフォルダが、miniSD上にあり、かつ、miniSDが刺さっていない等、存在しない場合、「\Windows\Temporary Internet Files」にキャッシュをする。
IE mobileのタスクを終了していない場合、最初にIE Mobileを起動した時にキャッシュをしたフォルダにキャッシュし続ける。
万が一、最初にIE Mobileを起動した時にキャッシュをしているフォルダが、miniSD上にあり、かつ、miniSDが刺さっていない等、存在しない場合、キャッシュをしなくなる。また特にエラーメッセージは出ず、IE Mobileは利用できる。
IE Mobileのタスクを1度閉じれば、再度、上記の条件でキャッシュするフォルダが決定される。
 という感じですね。
 ということで、miniSDの有無に関わらず「\Windows\Profiles\guest\Temporary Internet Files」のCacheの値を「\miniSDカード\Temporary Internet Files」のままにしていても特に問題は無いので、このまま利用していこうと思います。

http://d.hatena.ne.jp/popopo_2004/20051227
 早速やってみました。ただ、現状ではIEPはあまり使わない予定ですので効果を体感することは少ないと思いますが。