取得存放區
存放區公開資料區間內的虛擬檔案系統。IsolatedStorageFile 提供一些與存放區互動的方法。為了建立並擷取存放區,IsolatedStorageFile 提供三個靜態方法。呼叫 GetUserStoreForAssembly 或 GetUserStoreForDomain 將分別傳回依據使用者和組件與依據使用者、定義域和組件隔離的儲存區。這兩個方法擷取屬於呼叫它們的程式碼區塊的存放區。靜態方法 GetStore 傳回藉著傳入範圍參數組合而指定的隔離存放區。下列參數傳回使用者、組件和定義域所隔離的存放區。
Dim isoStore As IsolatedStorageFile
isoStore = IsolatedStorageFile.GetStore(IsolatedStorageScope.User Or IsolatedStorageScope.Assembly Or IsolatedStorageScope.Domain, Nothing, Nothing)
GetStore(IsolatedStorageScope.User | IsolatedStorageScope.Assembly | IsolatedStorageScope.Domain, null, null);
GetStore 方法可以用來指定存放區應該與漫遊使用者設定檔一起漫遊。如需如何設定這項功能的詳細資訊,請參閱隔離儲存區和漫遊。
自不同組件內取得的隔離存放區在預設狀況中為不同的存放區。您可以傳入不同組件或定義域辨識項當做 GetStore 方法的最後兩個參數,來存取不同組件或定義域的存放區。這需要使用權限,根據應用程式定義域識別來存取隔離儲存區。如需詳細資訊,請參閱 GetStore 方法。如需組件的詳細資訊,請參閱組件。
這三個方法的每一個都傳回 IsolatedStorageFile 物件。為了協助您決定哪一個隔離類型最適合您的情況,請參閱隔離的類型。一旦您擁有隔離儲存區檔案物件,您即可使用隔離儲存區方法去讀取、寫入、建立和刪除檔案和檔案目錄。
沒有機制可以防止程式碼傳遞 IsolatedStorageFile 至本身沒有充分存取權取得存放區的程式碼。只有取得 IsolatedStorage 物件的參考時 (通常在 GetUserStoreForAssembly、GetUserStoreForDomain 或 GetStore 方法中),才會檢查定義域和組件識別與隔離儲存區使用權限。因此,保護 IsolatedStorageFile 物件的參考是使用這些參考的程式碼的責任。
ObtainingAStore 範例
下列程式碼範例是一個非常簡單的範例,示範取得使用者和組件所隔離存放區的類別。藉著加入 IsolatedStorageScope.Domain 至 GetStore 方法將要傳遞的引數,可以變更程式碼來擷取使用者、定義域和組件所隔離的存放區。
執行程式碼之後,您可以在命令列輸入 StoreAdm /LIST,確認存放區已建立。這樣會執行隔離儲存區管理工具 (Storeadm.exe),並列出使用者的所有目前隔離存放區。如需 Storeadm.exe 的詳細資訊,請參閱隔離儲存區工具。
Imports System
Imports System.IO.IsolatedStorage
Public Module modmain
Sub Main()
' Dimension a new IsolatedStorageFile.
Dim isoStore As IsolatedStorageFile
' Set the IsolatedStorageFile to a store isolated by user and
' assembly.
isoStore = IsolatedStorageFile.GetStore(IsolatedStorageScope.User Or IsolatedStorageScope.Assembly, Nothing, Nothing)
End Sub
End Module
using System;
using System.IO.IsolatedStorage;
public class ObtainingAStore{
public static void Main(){
// Get a new isolated store for this assembly and put it into an
// isolated store object.
IsolatedStorageFile isoStore = IsolatedStorageFile.GetStore(IsolatedStorageScope.User | IsolatedStorageScope.Assembly, null, null);
}
}
請參閱
參考
IsolatedStorageFile
IsolatedStorageScope