保存したはずの設定ファイルが無い(VirtualStore機能)

Windowsでアプリを使って、アプリにいろんな設定をしたので保存する。よくある光景のように見えますね。
しかし、その設定ファイルをなんとなくバックアップとろうとか思うと、あれ、ファイルが無いなぁ・・・なんてことになるかもしれませんよ。

実際に起こった例

アプリケーションの設定を保存する

今回使っていたアプリはTeratermというソフトウェアです。
IT関連のお仕事をしている人はなじみがあると思いますが、そうでない人はあまり使わないかもしれませんね。
いわゆるターミナルエミュレーターで、サーバなどに接続してコマンドを打ったりするものです。

そのTeratermで設定を保存するメニューがあります。

Teraterm 設定の保存メニュー


すると、保存するためにダイアログが出るので、ファイル名を決めて保存します。
ここでは

  • 【C:¥Program Files(x86)¥teraterm】 のフォルダに
  • 【TERATERM_test.ini】 という名前で

保存をします。


Teraterm 設定ファイル保存

実際に保存した場所を確認してみる

先ほど保存した場所にファイルがあるかどうか確認してみましょう。
エクスプローラーで保存した場所を確認してみます。

Teraterm 設定ファイル保存先確認

りょーへー
りょーへー

さっき保存した【TERATERM_test.ini】がないやないか!!!


そうなんです。確かに先ほど【C:¥Program Files(x86)¥teraterm】に【TERATERM_test.ini】を保存したはずなのに、エクスプローラーで確認するとそのフォルダにはファイルが見当たりません。

アプリから確認してみる

ではアプリケーションから見た場合はどうなんでしょう。
「設定の読み込み」のメニューでフォルダを見てみます。

Teraterm 設定の読み込み


Teraterm 設定の読み込み

りょーへー
りょーへー

ファイルがあるやんけ・・・。


不思議ですね。。。
先ほどエクスプローラーではなかったファイルが、アプリケーションで確認するとファイルがあるように見えます。

これはVirtualStoreという機能によってこうなっている

じつはこの現象はWindowsの仕様によってこのような動きをします。
というのもWindows Vista以降ではシステム関連のフォルダへの書き込みが厳しくなりました。

ただ、これまで使われてきたアプリケーションがその対応に追いつかないことを考慮し、このVirtualStoreという機能を使って救済する形になっています。

りょーへー
りょーへー

で、VirtualStoreは何してくれるんや??


VirtualStoreはざっくり言うと、システムフォルダに保存しようとしたときに権限がない場合に、別のフォルダに保存してくれる機能です。

で、どこに保存してくれるのかというと、

C:¥Users¥[ユーザー名]¥AppData¥Local¥VirtualStore

に保存されます。

実際のフォルダを確認

では、ほんとにそのフォルダに保存されているか確認しましょう。

エクスプローラーでファイルを確認
りょーへー
りょーへー

ファイルあるやんけー!

VirtualStoreの機能によって、ファイルは所定の位置に保存されていますね。

エクスプローラー上ではVirtualStoreの機能で保存されるフォルダを見ればファイルが見えるんですが、アプリケーション上ではあくまでフォルダが変わっていないようにもともとのフォルダにあるように見せてくれているんですね。

なので、アプリケーション経由だと【C:¥Program Files(x86)¥teraterm】にあるように見えるんです。

VirtualStoreは古いシステムからの保管機能

VirtualStoreはWindowsの仕様変更によってアプリケーションが動かなくならないように、利用者に意識させることなくうまく書き込み先をコントロールしてくれているものなんですね。

ただ、意識しなくていいように作られているので、保存したファイルが見つけにくいいうのが少しデメリットですね。そのPCを使い続ける限りは困らないような気がしますが、新しいPCに移るときに保存したファイルを移動させるのを忘れてしまう可能性があるので、気をつけましょう!


Windows IT
りょーへーをフォローする

りょーへーぶろぐ