什么是Windows Phone的独立存储以及独立存储种形式

来源:爱站网时间:2017-12-22编辑:网友分享
本文详细的说明了什么是Windows Phone的独立存储以及独立存储种形式,独立存储其实就是A程序存的东西只能A用,B不能用;相同道理B的东西只能B自己用A不能访问,至于独立存储分2种形式,下面就详细的分享出来,需要了解的朋友可以一起来了解下。

什么是独立存储

独立存储(isolatedstorage)这个东西 是首先在SilverLight使用的(好 吧我是因为wp才认识独立存储的)

要说明什么是独立存储 首先就说什么是独立(isolated) 独立就是自个为一体

独立存储就是 A程序存的东西只能A用 B不能用 相同道理B的东西只能B自 己用A不能访问

这样做的很大好处是能提升安全性 哪怕你自个下载个病毒那病毒也只能在自个 的独立存储空间内才能形成破坏

由于wp的独立存储其实是“共享存储”(大家的独立存储空间 其实都是共享手机的那块内存 所谓独立只是逻辑上的文件形式独立而不是空间的独立)

所以wp 手机就算中毒最坏的情况也只是手机空间被撑暴而已(自个理解 欢迎拍砖)

独立存储分2种形 式:

1.文件形式的存储,通过真实的文件和目录的形式来创建和管理数据

2.设置的形式 ,通过字典的方式创建键值对,可用于保存少量的数据(对于实现墓碑机制和诸如软件的设置一类的话 这货挺有用的)

首先说明下独立存储(IsolatedStorage)是位于 System.IO.IsolatedStorage

当输入IsoLatedStorage的时候智能提示会有4个跟独立存储有关的 。。。这个应该叫选项还是选择呢?

其中第一个IsolatedStorageException是独立存储的异常错误

第二个就是用来创建和 管理文件的

第三个则主要是用于读取,将独立存储里存储的文件已流的形式读取出来(此类继 承自FileStream,大部分情况下适用与FileStream的都可以兼容这货)

第四个则是以设置的形 式获得独立存储区。。(就像刚才说的独立存储的2种形式的第二种)

异常没什么好说的 重点 说第二跟第四个 也就是IsolatedStorageFile 和 IsolatedStorageSettings

IsolatedStorageFile

 

先说如何在独立存储里创建一个名叫 hello.txt且里面写着hello的文本文档。。

要在独立存储区里新建一个文件 首先要先获得该软 件(一说用户)所拥有的独立存储区

var appStorage = IsolatedStorageFile.GetUserStoreForApplication();

(。。。第一次写带代码的博客 不会 高亮显示关键字。。。如何弄呢? HTML代码看着蛋疼啊。。。)

然后创建该文件

var fileName = appStorage.OpenFile(“hello.txt”,FileMode.OpenOrCreate)

对于这句代码可能 会有疑问,不是说好的创建吗? 怎么是OpenFIle的?而且appStorage里也有个CreateFile的方法啊

说到这个请注意代码的后半段,FileMode.OpenOrCreate  虽说我是用了 OpenFile这个没错,不过有FileMode在。。。

OpenOrCreate意味着如果文件当前存在,则读取 文件,假如不存在,就新建一个,不过这是在你可能拥有文件的前提下才用OpenFile会比较科学,如果 死都要创建新文件的话

如果直接用CreateFIle的话,假如当前独立存储区已经有了该文件会报 Exception的

科学的做法是要先确定文件是否存在,如果存在则删除在创建(懒了。。直接贴我 自己写的代码的图吧)

好了 现在已经有了那个文件了 如何向里面写入数据呢 这个的话个正常 的其他c#的io操作差不多,直接用StreamWriter就ok了

StreamWriter sw = new StreamWriter (fileName);

sw.WriteLine("hello");

自此就已经完成任务啦,在独立存储 区里创建了一个叫 hello.txt的文件且里面写有hello

另外稍微注意的是独立存储是属于非托管 资源 所以其需要手动释放(想问为什么??跟Stream为什么需要手动释放同道理,非托管的不被CLR管 理)

典型的办法最好是新建独立存储的时候用一个using语句围起来 这样可以避免忘记 Dispose

另外可能有人问 我存进去了那怎么读出来呢?基本步骤差不多(我都用了OpenFile了 ,其实就是为了方便,读写一体化)

然后StreamWriter换成StreamReader读出里面的流即可

IsolaterStorageSettings

这个东西会在独立存储区内以字典的形式保存数据

感 觉好像是存在一个叫 __ApplicationSettings 的文件里(不知道正确与否 但是用上了Settings的话好 像就铁定会多出这个文件)

也通过例子来说话

这次的目标是在独立存储区保存一个键为 "hello”值为"everyone”

首先也要跟File那个差不多获取当前软件内所拥有的独立 存储区 不过这次获得的是Settings而不是File了(毕竟我们是要保存到Settings而不是以真实文件形 式保存)

IsolatedStorageSettings setting = IsolatedStorageSettings.ApplicationSettings;

获取之后其实就可以很简单的

setting[“键的名称"]=值

上一篇:Silverlight for Windows Phone 7开发系列(2):第一个Silverlight程序

下一篇:以移动互联网的杀手级应用之一浏览器为主线管窥WP7的设计

您可能感兴趣的文章

相关阅读

热门软件源码

最新软件源码下载