隔离存贮(Isolated Storage)提供了一种存储应用程序相关数据的机制,允许你这些数据存储在不同的数据隔离分区(data compartment),存储数据并不局限于任何形式,通常像是组件标识符,程序创建者信息等等,类似于传统窗口程序的INI文件,所不同的是,使用隔离存储,数据被根据不同的用户、组件或者是安全等级存储,避免复杂的文件管理与不同应用程序数据存储文件的冲突等问题。
数据分隔区通常关联到一个到数个隔离存储区,成为store,其中包含了数据真正的存储的文件目录位置,类IsolatedStorageFile提供了一些方法让你可以返回特定的或是创建特定的store。
using
System;
using
System.Collections.Generic;
using
System.Text;
using
System.IO;
using
System.IO.IsolatedStorage;

namespace
CA_InputOutput

...
{
class StorageMaintain

...{
public static void Main(string[] args)

...{
// IsolatedStorageFile类提供静态方法GetStore()用来创建与应用程序相关的Isolated Storage
// 此方法接受3个参数 第1个参数 指定这个文件相关的应用范围(Isolated storeage scoped)
// 第2个参数 指定所属的Domain,null表示目前的应用程序定义域
// 第3个参数 当前应用程序组件,null表示当前应用程序组件
IsolatedStorageFile myIsoStore = IsolatedStorageFile.GetStore(IsolatedStorageScope.User | IsolatedStorageScope.Assembly, null, null);

// 创建存储数据文件
IsolatedStorageFileStream isFile1 = new IsolatedStorageFileStream("isFile1.bin", FileMode.Create, myIsoStore);
IsolatedStorageFileStream isFile2 = new IsolatedStorageFileStream("isFile2.txt", FileMode.Create, myIsoStore);
IsolatedStorageFileStream isFile3 = new IsolatedStorageFileStream("isFile3.txt", FileMode.Create, myIsoStore);

// 在指定的隔离区内创建目录
myIsoStore.CreateDirectory("ISDRoot");
myIsoStore.CreateDirectory("ISDRoot2");
myIsoStore.CreateDirectory("ISDRoot/subISDRoot");
myIsoStore.CreateDirectory("ISDRootSenond");

IsolatedStorageFileStream isFile4 = new IsolatedStorageFileStream("ISDRoot/rootFile1.txt", FileMode.Create, myIsoStore);
IsolatedStorageFileStream isFile5 = new IsolatedStorageFileStream("ISDRoot/subISDRoot/rootFile2.txt", FileMode.Create, myIsoStore);
IsolatedStorageFileStream isFile6 = new IsolatedStorageFileStream("ISDRoot/subISDRoot/rootFile3.txt", FileMode.Create, myIsoStore);
IsolatedStorageFileStream isFile7 = new IsolatedStorageFileStream("ISDRootSenond/rootFile4.txt", FileMode.Create, myIsoStore);

isFile1.Close(); isFile2.Close(); isFile3.Close(); isFile4.Close(); isFile5.Close(); isFile6.Close(); isFile7.Close();

myIsoStore.Close();

myIsoStore = IsolatedStorageFile.GetStore(IsolatedStorageScope.User | IsolatedStorageScope.Assembly, null, null);

Console.WriteLine("列出根目录下扩展名为bin的文件");
foreach(string strFileName in myIsoStore.GetFileNames("*.bin"))

...{
Console.WriteLine(strFileName);
}

Console.WriteLine("----------------------------------------------------------------------");

Console.WriteLine("列出根目录下扩展名为txt的文件");
foreach (string strFileName in myIsoStore.GetFileNames("*.txt"))

...{
Console.WriteLine(strFileName);
}

Console.WriteLine("----------------------------------------------------------------------");

Console.WriteLine("列出根目录所有相关文件");
foreach (string strFileName in myIsoStore.GetFileNames("*"))

...{
Console.WriteLine(strFileName);
}

Console.WriteLine("----------------------------------------------------------------------");

foreach(string strDirectory in myIsoStore.GetDirectoryNames("*"))

...{
Console.WriteLine(strDirectory);

foreach (string strFileName in myIsoStore.GetFileNames(strDirectory + "/*"))

...{
Console.WriteLine(" " + strFileName);
}

foreach (string sDirectory in myIsoStore.GetDirectoryNames(strDirectory + "/*"))

...{
Console.WriteLine(strDirectory + "/" + sDirectory);
foreach(string filename in myIsoStore.GetFileNames(strDirectory+"/"+sDirectory+"/*"))

...{
Console.WriteLine(" " + filename);
}

}
}

// 删除根目录下的文件
myIsoStore.DeleteFile("isFile1.bin");

// 删除目录
myIsoStore.DeleteDirectory("ISDRoot2");
myIsoStore.Close();

Console.ReadLine();
}
}
}
运行效果:
数据分隔区通常关联到一个到数个隔离存储区,成为store,其中包含了数据真正的存储的文件目录位置,类IsolatedStorageFile提供了一些方法让你可以返回特定的或是创建特定的store。











































































































运行效果: