Windows Phone 7 支援訪問資料幾種方式為: XML、Isolated Storage[隔離儲存區 (Isolated Storage)]、Cloud[雲端儲存],Windows Phone 7 上沒有本地
資料庫API可以利用 。
Isolated Storage[隔離儲存區 (Isolated Storage)]有兩種方式在本機存放區你的資料。第一是通過庫中的鍵/值對,叫做IsolatedStorageSettings。第二是通過建立真實的檔案和目錄,叫做IsolatedStorageFile。
(1)IsolatedStorageSettings
IsolatedStorageSettings允許你在一個字典中儲存鍵/值對(注意,無需任何設定),然後再讀取出來。這些資料會一直儲存著,無論應用程式停止/啟動,或者關機等等。除非你刪除它,或者使用者卸載你的應用程式,否則它一直存在。要記住的一點是在它被添加到字典中之前你無法讀取它。
IsolatedStorageSettings 可提供一種將使用者特定資料存放區為本地 IsolatedStorageFile 中的鍵/值對的便捷方法。一種典型的用途是儲存設定,例如,每頁顯示的映像數、頁面配置選項等。
使用者佈建可以是特定於某個應用程式的,也可以是在同一個域中的多個應用程式之間共用的。ApplicationSettings 儲存為每個應用程式的設定、每台電腦的設定以及每個使用者的設定。其範圍由應用程式 .xap 檔案的完整路徑來決定。SiteSettings 儲存為每個域的設定、每台電腦的設定以及每個使用者的設定。其範圍由承載應用程式 .xap 檔案的子域來決定。例如,位於 http://www.contoso.com/site1/application.xap 的應用程式將與位於 http://www.contoso.com/site2/application.xap 的應用程式具有不同的 ApplicationSettings。但是,這兩個應用程式將共用相同的 SiteSettings,因為它們承載於同一個子域中。
using System.IO.IsolatedStorage;
IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;
//使用 ApplicationSettings 屬性可建立用於在隔離儲存區 (Isolated Storage)中儲存鍵/值對的字典的新執行個體。
//ApplicationSettings 特定於某個使用者和某個應用程式。應用程式範圍由應用程式的完整路徑決定。
private void InitializeSettings()
{
if (settings.Contains("emailFlag"))
{
EmailFlag.IsChecked = (bool)settings["emailFlag"];
}
else settings.Add("emailFlag", false);
}
private void EmailFlag_Unchecked(object sender, RoutedEventArgs e)
{
settings["emailFlag"] = false;
}
private void EmailFlag_Checked(object sender, RoutedEventArgs e)
{
settings["emailFlag"] = true;
}
}
(2)IsolatedStorageFile
IsolatedStorageFile表示包含檔案和目錄的隔離儲存區 (Isolated Storage)區。使用IsolatedStorageFile是一種讓你可以在使用者的裝置中儲存真實檔案的機制。
該類使隔離儲存區 (Isolated Storage)的虛擬檔案系統抽象化。IsolatedStorageFile 對象對應於特定的隔離儲存區 (Isolated Storage)範圍,在該範圍中存在由 IsolatedStorageFileStream 對象表示的檔案。應用程式可以使用隔離儲存區 (Isolated Storage)將資料儲存在檔案系統中這些資料自己的獨立部分,而不必在檔案系統中指定特定的路徑。
虛擬檔案系統的根位於物理檔案系統上經過模糊處理的每使用者檔案夾中。由主機提供的每個唯一識別碼都映射為不同的根,該根為每個應用程式提供它自己的虛擬檔案系統。應用程式不能從它自己的檔案系統導航到另一個檔案系統中。
因為隔離儲存區 (Isolated Storage)區在特定程式集的範圍內,所以其他大多數Managed 程式碼都不能訪問您的代碼的資料(高度受信任的Managed 程式碼和管理工具可以從其他程式集訪問儲存區)。Unmanaged 程式碼可以訪問任何隔離儲存區 (Isolated Storage)區。
例子:
在一個子目錄中建立了一個文字檔,並讀取檔案中的內容。我們還可以建立和刪除目錄,子目錄及檔案。建立一個新的IsolatedStorageFile對象,並使用一個IsolatedStorageFileStream對象將它寫入到磁碟機中。
using System.IO.IsolatedStorage;
using System.IO;
private void SaveButton_Click(object sender, RoutedEventArgs e)
{
//為程式擷取一個虛擬本機存放區
IsolatedStorageFile fileStorage = IsolatedStorageFile.GetUserStoreForApplication();
//建立一個新的檔案夾
fileStorage.CreateDirectory("textFiles");
//建立一個txt檔案的流
StreamWriter fileWriter = new StreamWriter(new IsolatedStorageFileStream("textFiles\\newText.txt", FileMode.OpenOrCreate, fileStorage));
//向檔案中寫出內容
fileWriter.WriteLine(writeText.Text);
//關閉StreamWriter.
fileWriter.Close();
}
private void GetButton_Click(object sender, RoutedEventArgs e)
{
//為程式擷取一個虛擬本機存放區
IsolatedStorageFile fileStorage = IsolatedStorageFile.GetUserStoreForApplication();
//建立一個新的StreamReader
StreamReader fileReader = null;
try
{
//讀取檔案
fileReader = new StreamReader(new IsolatedStorageFileStream("textFiles\\newText.txt", FileMode.Open, fileStorage));
//讀取內容
string textFile = fileReader.ReadLine();
viewText.Text = textFile;
fileReader.Close();
}
catch
{
viewText.Text = "Need to create directory and the file first.";
}
}