Windowsでアプリを使って、アプリにいろんな設定をしたので保存する。よくある光景のように見えますね。
しかし、その設定ファイルをなんとなくバックアップとろうとか思うと、あれ、ファイルが無いなぁ・・・なんてことになるかもしれませんよ。
実際に起こった例
アプリケーションの設定を保存する
今回使っていたアプリはTeratermというソフトウェアです。
IT関連のお仕事をしている人はなじみがあると思いますが、そうでない人はあまり使わないかもしれませんね。
いわゆるターミナルエミュレーターで、サーバなどに接続してコマンドを打ったりするものです。
そのTeratermで設定を保存するメニューがあります。
![Teraterm 設定の保存メニュー](https://ryoheihey.com/wp-content/uploads/2020/09/1_save_menu.png)
すると、保存するためにダイアログが出るので、ファイル名を決めて保存します。
ここでは
- 【C:¥Program Files(x86)¥teraterm】 のフォルダに
- 【TERATERM_test.ini】 という名前で
保存をします。
![Teraterm 設定ファイル保存](https://ryoheihey.com/wp-content/uploads/2020/09/2_save.png)
実際に保存した場所を確認してみる
先ほど保存した場所にファイルがあるかどうか確認してみましょう。
エクスプローラーで保存した場所を確認してみます。
![Teraterm 設定ファイル保存先確認](https://ryoheihey.com/wp-content/uploads/2020/09/3_p_folder.png)
![りょーへー](https://ryoheihey.com/wp-content/uploads/2019/09/ryohei_ikari.png)
さっき保存した【TERATERM_test.ini】がないやないか!!!
そうなんです。確かに先ほど【C:¥Program Files(x86)¥teraterm】に【TERATERM_test.ini】を保存したはずなのに、エクスプローラーで確認するとそのフォルダにはファイルが見当たりません。
アプリから確認してみる
ではアプリケーションから見た場合はどうなんでしょう。
「設定の読み込み」のメニューでフォルダを見てみます。
![Teraterm 設定の読み込み](https://ryoheihey.com/wp-content/uploads/2020/09/3-1_p_folder_check.png)
![Teraterm 設定の読み込み](https://ryoheihey.com/wp-content/uploads/2020/09/3-2_p_folder_check-1024x659.png)
![りょーへー](https://ryoheihey.com/wp-content/uploads/2019/09/ryohei_chi-n.png)
ファイルがあるやんけ・・・。
不思議ですね。。。
先ほどエクスプローラーではなかったファイルが、アプリケーションで確認するとファイルがあるように見えます。
これはVirtualStoreという機能によってこうなっている
じつはこの現象はWindowsの仕様によってこのような動きをします。
というのもWindows Vista以降ではシステム関連のフォルダへの書き込みが厳しくなりました。
ただ、これまで使われてきたアプリケーションがその対応に追いつかないことを考慮し、このVirtualStoreという機能を使って救済する形になっています。
![りょーへー](https://ryoheihey.com/wp-content/uploads/2019/09/ryohei_gimon2-1.png)
で、VirtualStoreは何してくれるんや??
VirtualStoreはざっくり言うと、システムフォルダに保存しようとしたときに権限がない場合に、別のフォルダに保存してくれる機能です。
で、どこに保存してくれるのかというと、
C:¥Users¥[ユーザー名]¥AppData¥Local¥VirtualStore
に保存されます。
実際のフォルダを確認
では、ほんとにそのフォルダに保存されているか確認しましょう。
![エクスプローラーでファイルを確認](https://ryoheihey.com/wp-content/uploads/2020/09/4_v_folder.png)
![りょーへー](https://ryoheihey.com/wp-content/uploads/2019/09/ryohei_chikai.png)
ファイルあるやんけー!
VirtualStoreの機能によって、ファイルは所定の位置に保存されていますね。
エクスプローラー上ではVirtualStoreの機能で保存されるフォルダを見ればファイルが見えるんですが、アプリケーション上ではあくまでフォルダが変わっていないようにもともとのフォルダにあるように見せてくれているんですね。
なので、アプリケーション経由だと【C:¥Program Files(x86)¥teraterm】にあるように見えるんです。
VirtualStoreは古いシステムからの保管機能
VirtualStoreはWindowsの仕様変更によってアプリケーションが動かなくならないように、利用者に意識させることなくうまく書き込み先をコントロールしてくれているものなんですね。
ただ、意識しなくていいように作られているので、保存したファイルが見つけにくいいうのが少しデメリットですね。そのPCを使い続ける限りは困らないような気がしますが、新しいPCに移るときに保存したファイルを移動させるのを忘れてしまう可能性があるので、気をつけましょう!