Windows Phone 7 独立存储Isolated Storage

简介:

Windows Phone 7 支持访问数据几种方式为: XML、Isolated Storage[独立存储]、Cloud[云存储],Windows Phone 7 上没有本地

数据库API可以利用 。

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 属性可创建用于在独立存储中存储键/值对的字典的新实例。
//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表示包含文件和目录的独立存储区。使用IsolatedStorageFile是一种让你可以在用户的设备中存储真实文件的机制。

该类使独立存储的虚拟文件系统抽象化。IsolatedStorageFile 对象对应于特定的独立存储范围,在该范围中存在由 IsolatedStorageFileStream 对象表示的文件。应用程序可以使用独立存储将数据保存在文件系统中这些数据自己的独立部分,而不必在文件系统中指定特定的路径。

虚拟文件系统的根位于物理文件系统上经过模糊处理的每用户文件夹中。由主机提供的每个唯一标识符都映射为不同的根,该根为每个应用程序提供它自己的虚拟文件系统。应用程序不能从它自己的文件系统导航到另一个文件系统中。

因为独立存储区在特定程序集的范围内,所以其他大多数托管代码都不能访问您的代码的数据(高度受信任的托管代码和管理工具可以从其他程序集访问存储区)。非托管代码可以访问任何独立存储区。


例子:
在一个子目录中创建了一个文本文件,并读取文件中的内容。我们还可以创建和删除目录,子目录及文件。创建一个新的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.";
}
}

 

本文转自linzheng 51CTO博客,原文链接:http://blog.51cto.com/linzheng/1079210

相关文章
|
3天前
|
存储 NoSQL MongoDB
MongoDB【部署 04】Windows系统实现MongoDB多磁盘存储
MongoDB【部署 04】Windows系统实现MongoDB多磁盘存储
221 0
|
存储 监控 数据可视化
在Windows下使用JMeter集群+Influxdb存储+Grafana实时数据展示
在Windows下使用JMeter集群+Influxdb存储+Grafana实时数据展示
315 0
在Windows下使用JMeter集群+Influxdb存储+Grafana实时数据展示
|
存储 编译器 Windows
(int char等)数据类型的存储方式及计算取值(最全、最详细~保姆式讲解)(Windows)
M表示 大于等于1,小于2的数。(解释一下,我们在10进制里面,使用科学计数法是用一个大于等于1、小于10的数乘以10^n来表示的。类比推理一下,在2进制里面就是一个大于1、小于2的数乘以2的多少次)。
164 0
(int char等)数据类型的存储方式及计算取值(最全、最详细~保姆式讲解)(Windows)
|
存储 jenkins Java
《Jenkins从零到壹》jenkins问题:windows环境安装,安装目录里没有存储数据(JAVA 小虚竹
《Jenkins从零到壹》jenkins问题:windows环境安装,安装目录里没有存储数据(JAVA 小虚竹
166 0
《Jenkins从零到壹》jenkins问题:windows环境安装,安装目录里没有存储数据(JAVA 小虚竹
|
Android开发 iOS开发 Windows
Windows Phone 寿终正寝了,这些经典机型你还记得吗?
不久前,随着最后一家WP手机厂商惠普宣布取消今后Windows Phone的研发计划,以及微软官方声明对WP8.1系统今后所有升级维护的终止,WP手机,作为曾经和安卓手机、苹果手机并驾齐驱的三大智能手机之一,正式寿终正寝。
1278 0
Windows Phone 寿终正寝了,这些经典机型你还记得吗?
|
存储 编解码 Ubuntu
FFMPEG音频视频开发:QT获取Android、Linux、Windows系统上的摄像头数据帧与声卡音频通过FFMPEG编码为MP4存储(v1.0)
FFMPEG音频视频开发:QT获取Android、Linux、Windows系统上的摄像头数据帧与声卡音频通过FFMPEG编码为MP4存储(v1.0)
502 0
FFMPEG音频视频开发:QT获取Android、Linux、Windows系统上的摄像头数据帧与声卡音频通过FFMPEG编码为MP4存储(v1.0)
|
XML 开发框架 前端开发
Windows Phone快速入门需掌握哪些能力
在此之前,先普及下Windows Phone的概念和开发工具的介绍。 Windows Phone是微软公司开发的手机操作系统,它将微软旗下的Xbox Live游戏、Xbox Music音乐与独特的视频体验集成至手机中。2012年6月21日,微软正式发布Windows Phone 8,采用和Windows 8相同的Windows NT内核,同时也针对市场的Windows Phone 7.5发布Windows Phone 7.8。
136 0
Windows Phone快速入门需掌握哪些能力
|
编解码 前端开发 JavaScript
Windows Phone 下开发 LBS 应用
基于位置的服务(Location Based Service,LBS),它是通过电信移动运营商的无线电通讯网络(如GSM网、CDMA网)或外部定位方式(如GPS)获取移动终端用户的位置信息(地理坐标,或大地坐标),在GIS(Geographic Information System,地理信息系统)平台的支持下,为用户提供相应服务的一种增值业务。
166 0
|
移动开发 Android开发 开发者
Windows Phone 8.1 新功能汇总 开发者预览版开放下载
在Build 2014大会上,微软正式发布了传闻已久的Windows Phone 8.1系统,所有的Windows Phone 8手机都可以升级,微软这次可谓是十分厚道。虽然并非迭代升级,但WP 8.1还是拥有很多重大更新,对于微软进一步完善移动平台拥有积极的意义。下面,就一起来了解一下WP 8.1的主要新特性。
235 0
Windows Phone 8.1 新功能汇总 开发者预览版开放下载
|
存储 Linux 对象存储
如何利用用云存储网关作为Windows docker存储访问OSS
本文像用户介绍在windows的容器环境中,如果利用阿里云云存储网关的smb共享作为后端存储,实现docker容器内的数据上云,在docker中直接访问对象存储OSS中的数据。
2638 0
如何利用用云存储网关作为Windows docker存储访问OSS