溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

獨(dú)立存儲(chǔ)

發(fā)布時(shí)間:2020-07-09 20:56:45 來源:網(wǎng)絡(luò) 閱讀:314 作者:windows_phone 欄目:開發(fā)技術(shù)

 獨(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

獨(dú)立存儲(chǔ)

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異常

獨(dú)立存儲(chǔ)

(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)造StreamWriterStreamReader對(duì)象進(jìn)行文件讀寫。

(3)   關(guān)閉流讀寫對(duì)象以釋放資源

 

向AI問一下細(xì)節(jié)

免責(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)容。

AI