隔離存貯(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();
        }

    }

}


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