您好,登錄后才能下訂單哦!
獨(dú)立存儲(chǔ)
獨(dú)立存儲(chǔ)為托管代碼提供了一種對(duì)每個(gè)計(jì)算機(jī)、每個(gè)用戶、每個(gè)應(yīng)用程序域在本地文件系統(tǒng)中分配一個(gè)獨(dú)有的存儲(chǔ)空間的機(jī)制。數(shù)據(jù)本身還是存儲(chǔ)在本地文件系統(tǒng)中的,但是其實(shí)際位置對(duì)于應(yīng)用程序是透明的,應(yīng)用程序只能夠訪問當(dāng)前用戶在當(dāng)前應(yīng)用程序域的文件及文件夾。
1、 了解獨(dú)立存儲(chǔ)
獨(dú)立存儲(chǔ):作為本地?cái)?shù)據(jù)的基本存儲(chǔ)方式
每個(gè)應(yīng)用程序?qū)⒃?span >獨(dú)立存儲(chǔ)中被分配一個(gè)獨(dú)立的存儲(chǔ)空間,成為應(yīng)用程序數(shù)據(jù)存儲(chǔ)文件夾,即該應(yīng)用的獨(dú)立存儲(chǔ)根目錄。應(yīng)用程序可以調(diào)用獨(dú)立存儲(chǔ)API在該目錄下存儲(chǔ)數(shù)據(jù)。根據(jù)使用方式及功能的不同,獨(dú)立存儲(chǔ)空間又包含兩部分。
獨(dú)立文件存儲(chǔ) |
|
獨(dú)立設(shè)置存儲(chǔ) |
|
2、 獨(dú)立設(shè)置存儲(chǔ)
使用鍵值對(duì)集合的語法來進(jìn)行操作。
常用于存儲(chǔ)應(yīng)用程序設(shè)置之類的信息。其中主要涉及
System.IO.IsolatedStorage.IsolatedSettings類
(1)
(2)添加對(duì)獨(dú)立存儲(chǔ)API所在的命名空間的引用
using System.IO.IsolatedStorage; |
(3)創(chuàng)建操作獨(dú)立存儲(chǔ)必須的 IsolatedStorageSettings 類的對(duì)象
IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings; |
(4)為四個(gè)按鈕添加ChangeSettings事件處理程序
private void ChangeSettings(object sender, RoutedEventArgs e) { string key = textBox1.Text.Trim(); string value = textBox2.Text; Button clickButton = sender as Button; switch(clickButton.Name) { case"button1": settings.Add(key,value); //添加 break; case"button2": settings[key] = value; /添加或修改 break; case "button3": settings.Remove(key); //移除指定鍵值對(duì) break; case "button4": settings.Clear();//清除獨(dú)立設(shè)置存儲(chǔ) break; } settings.Save(); ReadAllSettings(); } private void ReadAllSettings() { //throw new NotImplementedException(); string message = "顯示鍵值對(duì):"; foreach(string key in settings.Keys) { message += string.Format("{0}={1}\n",key,settings[key].ToString()); } textBlock3.Text = message; } |
需要說明的是:
(1) 在所有的獨(dú)立存儲(chǔ)操作中,若key為空串,會(huì)拋出ArgumentNullException異常
(2) 在Add方法中,若key已存在,則添加失敗,會(huì)拋出ArgumentException異常
(3) 在setting[key]操作中,若key不存在,則相當(dāng)于Add操作;若已存在,則覆蓋。
(4) 在Remove方法中,若正常刪除返回true;若key不存在刪除失敗,則返回false.
(5) Clear會(huì)清除當(dāng)前應(yīng)用程序設(shè)置的所有獨(dú)立存儲(chǔ)設(shè)置。
提示:在該例中存儲(chǔ)的數(shù)據(jù)為字符串,實(shí)際上鍵值對(duì)也可以存儲(chǔ)其他的數(shù)據(jù)類型,包括所有可序列化的對(duì)象。這就大大擴(kuò)寬了獨(dú)立設(shè)置存儲(chǔ)的使用范圍,一種容易想到的用途就是將一些數(shù)據(jù)封裝為對(duì)象保存在獨(dú)立設(shè)置存儲(chǔ)中。
3、 獨(dú)立文件存儲(chǔ)
獨(dú)立文件存儲(chǔ)的操作與文件系統(tǒng)類似,可通過相應(yīng)API進(jìn)行文件、文件夾操作。其中主要涉及System.IO.IsolatedStorage.IsolatedStorageFile類。
操作過程為:
(1) 獲得IsolatedStorageFile對(duì)象
(2) 直接調(diào)用其相應(yīng)方法進(jìn)行文件或文件夾的基本操作,或進(jìn)行文件讀寫操作。
文件及文件夾基本操作涉及的方法有:
目錄操作:
CreateDirectory |
DeleteDirectory |
MoveDirectory |
DirectoryExists |
GetDirectoryNames |
Remove |
文件操作:
CreateFile |
DeleteFile |
MoveFile |
CopyFile |
FileExitst |
GetFileNames |
OpenFile |
Remove |
文件讀寫操作過程:
(1) 用獲得的IsolatedStorageFile對(duì)象的OpenFile方法創(chuàng)建一個(gè)IsolatedStorageFileStream對(duì)象(或用IsolatedStorageFileStream的構(gòu)造方法構(gòu)造);
(2) 針對(duì)IsolatedStorageFileStream對(duì)象構(gòu)造StreamWriter或StreamReader對(duì)象進(jìn)行文件讀寫。
(3) 關(guān)閉流讀寫對(duì)象以釋放資源
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。