バーチャルストア・ファイルの仮想化について(Ver8.89対応版)
目次− バーチャルストア・ファイルの仮想化について
特定の場所にあるファイルを開いているとき、秀丸エディタ本体の上部に、以下のような注意のメッセージが表示されることがあります。
注意:このファイルを保存すると仮想化された場所に保存される可能性があります。
このメッセージを出さないようにするには、32bit版でProgram Files配下のファイルを開いている場合、[その他]→[動作環境]→[32bit版]で「VirtualStoreを無効にする」をONにして秀丸エディタを再起動すると出ないようになります。
ストアアプリ版でAppData配下のファイルを開いている場合は、出ないようにすることはできません。


詳しい説明

バーチャルストア
 Windws XP以前でProgram Filesフォルダ配下に書き込みできていたものがWindows Vista以降で管理者でないと書き込みができなくなりました。
 バーチャルストアとは、この変更があってもそれ以前のアプリは動作可能にするためのWindowsの機能で、互換性が維持されるようになっています。

 デスクトップ版の32bit版の秀丸エディタは、互換性のため、デフォルトでバーチャルストアが有効として動作しますが、バーチャルストアは無効にしたほうが望ましいです。([その他]→[動作環境]→[32bit版]で設定)
 デスクトップ版の64bit版の秀丸エディタは、バーチャルストアは常に無効です。
 ストアアプリ版の秀丸エディタは、バーチャルストアはデフォルトで無効になっています。(V8.79以降)

 Windowsに標準付属のメモ帳は32bitでも64bitでも、バーチャルストアは常に無効です。

 バーチャルストアは、Program Files配下には書き込みをせず、バーチャルストアが有効なアプリから見たときだけ、仮想的に書き込んだかのように振る舞います。
 実際にはユーザーごとのAppData配下に書き込まれます。
 AppDataは、ユーザーフォルダにある隠しフォルダになっています。
 
 例えば以下のような場所になります。
 
 書き込もうとしたファイルのある場所:
  C:\Program Files (x86)\Hidemaru
 実際に書き込まれた場所:
  C:\Users\(ユーザー名)\AppData\Local\VirtualStore\Program Files (x86)\Hidemaru
 
 バーチャルストアが行われる場所は、他にもシステムドライブのルート(C:\)や、Windowsフォルダ配下があります。
 V8.79以降では、このようなフォルダにあるファイルを開いている場合、編集エリアの上部に仮想化されることが表示されるようになっています。

AppDataの仮想化
 AppDataの仮想化はストアアプリのためにあります。
 秀丸エディタ(ストアアプリ版)は、いわゆるモダンアプリ/UWPとは違い、デスクトップアプリをストアアプリとして動作させる仕組みを使っています。
 この仕組みで動作する場合、AppDataの仮想化が行われます。
 AppDataという場所には、アプリ固有のデータファイルが存在しますが、ここで、バーチャルストアに似た仮想的な書き込みが行われます。
 仮想化によって、アプリ内だけで隔離された場所になるので、例えばストアアプリがどのようにAppDataを書き換えようとも、他のアプリから見たら影響がなく、また、アンインストールすればAppData配下はクリーンな状態が保たれるようになっています。
 
 デスクトップ版の32bit版の秀丸エディタは、AppDataの仮想化はありません。
 デスクトップ版の64bit版の秀丸エディタも、AppDataの仮想化はありません。
 ストアアプリ版の秀丸エディタは、AppData配下のファイルが全て仮想化されます。
 
 この動作もバーチャルストアと似た関係になっています。
 仮想的なファイルはアプリごとにあり、書き込むとアプリごとに違う内容に見えます。
 
 例えば以下のような場所になります。
 
 書き込もうとしたファイルのある場所:
  C:\Users\(ユーザー名)\AppData\Roaming\Microsoft\Windows\Start Menu
 実際に書き込まれた場所:
  C:\Users\(ユーザー名)\AppData\Local\Packages\(アプリ固有のフォルダ)\LocalCache\Roaming\Microsoft\Windows\Start Menu

 V8.79以降では、AppData配下にあるファイルを開いている場合、編集エリアの上部に仮想化されることが表示されるようになっています。


戻る