隔离存贮(Isolated Storage)

隔离存贮(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, nullnull);

            
// 创建存储数据文件
            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, nullnull);

            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();
        }

    }

}


运行效果:
隔离存贮
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章