読者です 読者をやめる 読者になる 読者になる

謎言語使いの徒然

適当に気になった技術や言語を流すブログ。

隔離領域ストリーム

.NET Tips C#

マシン、ユーザに対して、アプリケーション単位、アセンブリ単位、ドメイン単位で隔離領域アクセスできるようだ。

static void Main(string[] args)
{
    WriteMessage();
    ReadMessage();
    Console.ReadLine();
}

static void ReadMessage()
{
    IsolatedStorageFile file = IsolatedStorageFile.GetUserStoreForAssembly();

    IsolatedStorageFileStream stream
        = new IsolatedStorageFileStream("dummy.txt", FileMode.Open, file);

    StreamReader reader = new StreamReader(stream);

    Console.WriteLine(reader.ReadLine());

    reader.Close();
    stream.Close();
}

static void WriteMessage()
{
    IsolatedStorageFile file = IsolatedStorageFile.GetUserStoreForAssembly();
    //IsolatedStorageFile.GetUserStoreForApplication();
    //IsolatedStorageFile.GetUserStoreForDomain();
    //IsolatedStorageFile.GetMachineStoreForApplication();
    //IsolatedStorageFile.GetMachineStoreForAssembly();
    //IsolatedStorageFile.GetMachineStoreForDomain();

    IsolatedStorageFileStream stream
        = new IsolatedStorageFileStream("dummy.txt", FileMode.Create, file);

    StreamWriter writer = new StreamWriter(stream);

    writer.WriteLine("Welcome to SSX Trickey!");

    writer.Close();
}

ちなみにファイルシステム監視も入れてみて、どこに書き込まれるか。

Change : AppData\Local\IsolatedStorage\egtosdxu.tdo\izdj1y2s.w03\Url.n5wbm0ib5csnoii50egxehbsnlm0kplo\identity.dat
Change : AppData\Local\IsolatedStorage\egtosdxu.tdo\izdj1y2s.w03\Url.n5wbm0ib5csnoii50egxehbsnlm0kplo\AssemFiles\dummy.txt
Change : AppData\Local\IsolatedStorage\egtosdxu.tdo\izdj1y2s.w03\Url.n5wbm0ib5csnoii50egxehbsnlm0kplo\AssemFiles\dummy.txt
Change : AppData\Local\IsolatedStorage\egtosdxu.tdo\izdj1y2s.w03\Url.n5wbm0ib5csnoii50egxehbsnlm0kplo\identity.dat

こんな所に隔離領域あるのね、、、。