独立存储
独立存储为托管代码提供了一种对每个计算机、每个用户、每个应用程序域在本地文件系统中分配一个独有的存储空间的机制。数据本身还是存储在本地文件系统中的,但是其实际位置对于应用程序是透明的,应用程序只能够访问当前用户在当前应用程序域的文件及文件夹。
1、 了解独立存储
独立存储:作为本地数据的基本存储方式
每个应用程序将在独立存储中被分配一个独立的存储空间,成为应用程序数据存储文件夹,即该应用的独立存储根目录。应用程序可以调用独立存储API在该目录下存储数据。根据使用方式及功能的不同,独立存储空间又包含两部分。
独立文件存储 |
|
独立设置存储 |
|
2、 独立设置存储
使用键值对集合的语法来进行操作。
常用于存储应用程序设置之类的信息。其中主要涉及
System.IO.IsolatedStorage.IsolatedSettings类
(1)
(2)添加对独立存储API所在的命名空间的引用
using System.IO.IsolatedStorage; |
(3)创建操作独立存储必须的 IsolatedStorageSettings 类的对象
IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings; |
(4)为四个按钮添加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); //移除指定键值对 break; case "button4": settings.Clear();//清除独立设置存储 break; } settings.Save(); ReadAllSettings(); } private void ReadAllSettings() { //throw new NotImplementedException(); string message = "显示键值对:"; foreach(string key in settings.Keys) { message += string.Format("{0}={1}\n",key,settings[key].ToString()); } textBlock3.Text = message; } |
需要说明的是:
(1) 在所有的独立存储操作中,若key为空串,会抛出ArgumentNullException异常
(2) 在Add方法中,若key已存在,则添加失败,会抛出ArgumentException异常
(3) 在setting[key]操作中,若key不存在,则相当于Add操作;若已存在,则覆盖。
(4) 在Remove方法中,若正常删除返回true;若key不存在删除失败,则返回false.
(5) Clear会清除当前应用程序设置的所有独立存储设置。
提示:在该例中存储的数据为字符串,实际上键值对也可以存储其他的数据类型,包括所有可序列化的对象。这就大大扩宽了独立设置存储的使用范围,一种容易想到的用途就是将一些数据封装为对象保存在独立设置存储中。
3、 独立文件存储
独立文件存储的操作与文件系统类似,可通过相应API进行文件、文件夹操作。其中主要涉及System.IO.IsolatedStorage.IsolatedStorageFile类。
操作过程为:
(1) 获得IsolatedStorageFile对象
(2) 直接调用其相应方法进行文件或文件夹的基本操作,或进行文件读写操作。
文件及文件夹基本操作涉及的方法有:
目录操作:
CreateDirectory |
DeleteDirectory |
MoveDirectory |
DirectoryExists |
GetDirectoryNames |
Remove |
文件操作:
CreateFile |
DeleteFile |
MoveFile |
CopyFile |
FileExitst |
GetFileNames |
OpenFile |
Remove |
文件读写操作过程:
(1) 用获得的IsolatedStorageFile对象的OpenFile方法创建一个IsolatedStorageFileStream对象(或用IsolatedStorageFileStream的构造方法构造);
(2) 针对IsolatedStorageFileStream对象构造StreamWriter或StreamReader对象进行文件读写。
(3) 关闭流读写对象以释放资源
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。