快速构建Windows 8风格应用26-本地应用数据

原文:快速构建Windows 8风格应用26-本地应用数据

本篇博文主要介绍如何获取应用的设置和文件容器、如何将数据写入设置、如何从设置中获取数据、如何删除设置中数据、如何将数据写入文件、如何从文件中获取数据。

 

当应用安装时,系统会为设置和文件等应用数据提供它自己的每用户数据存储。我们不需要知道这些数据存在哪里或如何存储,因为系统会负责管理物理存储工作。我们只需使用应用数据API就可以了。

本地应用数据一般用于当前设备数据的持久化,并且本地数据没有限制大小,通常情况使用本地数据存储大型数据集。

 

如何获取应用的设置和文件容器

1.使用ApplicationData.LocalSettings属性可以获取ApplicationDataContainer 对象中的设置。

Windows.Storage.ApplicationDataContainer localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;

2.使用 ApplicationData.LocalFolder 属性可以获取StorageFolder 对象中的文件。

Windows.Storage.ApplicationDataContainer localFolder = Windows.Storage.ApplicationData.Current.LocalFolder;

如何将数据写入设置

我们可以通过三种方式将数据写入设置。

1.使用ApplicationDataContainer.Values属性。

localSettings.Values["exampleSetting"] = "Hello Windows";

使用键-值对的方式。

2.使用ApplicationDataCompositeValue对象,进行一个复合的设置。

Windows.Storage.ApplicationDataCompositeValue composite = new Windows.Storage.ApplicationDataCompositeValue();
composite["intVal"] = 1;
composite["strVal"] = "string";
 
localSettings.Values["exampleCompositeSetting"] = composite;

3.使用ApplicationDataContainer.CreateContainer方法创建设置容器,将数据添加到容器中。

Windows.Storage.ApplicationDataContainer container = 
   localSettings.CreateContainer("exampleContainer", Windows.Storage.ApplicationDataCreateDisposition.Always);
 
if (localSettings.Containers.ContainsKey("exampleContainer"))
{
   localSettings.Containers["exampleContainer"].Values["exampleSetting"] = "Hello Windows";
}

其中Windows.Storage.ApplicationDataCreateDisposition的枚举值Always表示该容器不存在的话进行创建。

如何从设置中获取数据

1.使用ApplicationDataContainer.Values属性获取数据。

Object value = localSettings.Values["exampleSetting"];

 

2.使用ApplicationDataContainer.Values属性获取复合设置中数据。

Windows.Storage.ApplicationDataCompositeValue composite = 
   (Windows.Storage.ApplicationDataCompositeValue)localSettings.Values["exampleCompositeSetting"];
 
if (composite == null)
{   
}
else
{   
}

 

3.使用ApplicationDataContainer.Values属性获取容器中数据

bool hasContainer = localSettings.Containers.ContainsKey("exampleContainer");
bool hasSetting = false;
 
if (hasContainer)
{
   hasSetting = localSettings.Containers["exampleContainer"].Values.ContainsKey("exampleSetting");
}

如何删除设置中数据

1.使用ApplicationDataContainerSettings.Remove方法可以删除数据、复合数据设置以及容器设置。

localSettings.Values.Remove("exampleSetting");

如何将数据写入文件

通常我们会使用Windows.Storage.StorageFolder.CreateFileAsyncWindows.Storage.FileIO.WriteTextAsync在本地数据存储中创建或更新文件。

async void WriteTimestamp()
{
   Windows.Globalization.DateTimeFormatting.DateTimeFormatter formatter = 
       new Windows.Globalization.DatetimeFormatting.DateTimeFormatter("longtime");
 
   StorageFile sampleFile = await localFolder.CreateFileAsync("dataFile.txt", 
       CreateCollisionOption.ReplaceExisting);
   await FileIO.WriteTextAsync(sampleFile, formatter.Format(DateTime.Now));
}

其中CreationCollisionOption中的ReplaceExisting值表示若该文件不存在就创建,若存在就替换。

如何从文件中获取数据

通常我们会使用Windows.Storage.StorageFolder.GetFileAsyncWindows.Storage.StorageFile.GetFileFromApplicationUriAsyncWindows.Storage.FileIO.ReadTextAsync在本地数据存储中打开或读取文件。

async void ReadTimestamp()
{
   try
   {
      StorageFile sampleFile = await localFolder.GetFileAsync("dataFile.txt");
      String timestamp = await FileIO.ReadTextAsync(sampleFile);     
   }
   catch (Exception)
   {      
   }
}

 

MSDN中提供相关示例代码:Application data sample

时间: 2024-09-15 18:12:57

快速构建Windows 8风格应用26-本地应用数据的相关文章

快速构建Windows 8风格应用27-漫游应用数据

原文:快速构建Windows 8风格应用27-漫游应用数据 本篇博文主要介绍漫游应用数据概览.如何构建漫游应用数据.构建漫游应用数据最佳实践.   一.漫游应用数据概览 1.若应用当中使用了漫游应用数据,用户可以很轻松的在不同的设备间保持应用数据的同步. 2.Windows会将更新的漫游数据同步到云端,并将数据更新到其他安装此应用的设备上. 3.Windows 限制了每个应用可漫游的应用数据大小.若我们的应用达到漫游数据大小的限制,在应用的总漫游数据再次少于该限制之前,不会将应用的任何数据更新到

快速构建Windows 8风格应用21-构建简单媒体播放器

原文:快速构建Windows 8风格应用21-构建简单媒体播放器 本篇博文主要介绍如何构建一个简单的媒体播放器. <快速构建Windows 8风格应用20-MediaElement>博文中提到了如何使用MediaElement对象进行播放视频的简单功能,但是在实际应用中需要更复杂的功能,例如:控制视频播放的控件.全屏模式.进度条等等其他功能. 本篇博文中示例使用应用程序中包含的媒体文件,当然我们也可以通过网络或者本地[使用FileOpenPicker]进行加载某一媒体文件. MSDN中关于媒体

快速构建Windows 8风格应用3-打包发布应用

原文:快速构建Windows 8风格应用3-打包发布应用 本篇博文主要介绍如何打包应用程序,成功后如何部署应用程序,最后介绍如何发布应用程序到应用商店中. 如何打包Windows 8风格应用程序呢? 首先我们需要使用Windows 8内置Administrator账户才能进行打包,若使用本地普通账户或者Hotmail账号是无法正常打包的. 那么我们如何启用内置的Administrator账户呢?步骤如下: 1)  打开控制面板: 2)  打开管理工具: 3)  打开计算机管理: 4)  在系统工

快速构建Windows 8风格应用12-SearchContract概述及原理

原文:快速构建Windows 8风格应用12-SearchContract概述及原理 本篇博文主要介绍Search Contract概述.Search Contract面板结构剖析.Search Contract实现原理.Search Contract最佳实践.  Search Contract概述 使用过Windows 8操作系统的开发者都知道什么是Charms(超级按钮).其中在Charms中包含了一个Search,微软称之为Search Contact,我们可以在应用中调用Search C

快速构建Windows 8风格应用31-构建磁贴

原文:快速构建Windows 8风格应用31-构建磁贴 引言 磁贴是吸引用户经常使用应用重要手段之一.我们可将应用程序内较好的内容使用磁贴进行展示. 另外应用程序磁贴是应用程序中的核心部分,而且很可能也是用户最常见到的部分,因此利用动态磁贴来吸引用户经常使用我们的应用程序! 本篇博文主要介绍如何创建基本磁贴(也就是默认磁贴)以及如何使用本地通知更新磁贴. 一.创建基本磁贴 基本磁贴也可以叫做默认磁贴.通常我们点击基本磁贴来启动或者切换应用. 我们可以在应用程序清单文件中设置默认的静态磁贴,并且该

快速构建Windows 8风格应用32-构建辅助磁贴

原文:快速构建Windows 8风格应用32-构建辅助磁贴 引言 Windows Phone中,我们开发者可能会开发的一个功能点是将数据列表中某一项"Pin To Start(固定到开始屏幕)",大家都知道这种固定到开始屏幕的磁贴叫做辅助磁贴(也叫二级磁贴),用户可以通过该辅助磁贴启动应用程序并导航到应用程序中某一个页面或某一位置. 其实Windows 8 Store风格应用程序也引入了辅助磁贴的概念,用户在使用Windows 8 Store应用的辅助磁贴和Windows Phone

快速构建Windows 8风格应用34-构建Toast通知

原文:快速构建Windows 8风格应用34-构建Toast通知 引言 开发过WindowsPhone应用或者使用过WindowsPhone手机的开发者都知道,我们会收到一些应用的提示信息,这些提示信息出现在手机的上端,并且停留几秒钟后会自动消失,当然如果我们点击弹出的信息会自动运行相应的应用程序,这种提示信息我们叫做通知. 其实Windows 8 Store 应用也借鉴了Windows Phone上的提示信息,我们开发人员可以使自己应用程序在合适时间弹出相关提示信息,那么这些Windows 8

快速构建Windows 8风格应用17-布局控件

原文:快速构建Windows 8风格应用17-布局控件 本篇博文主要介绍三种常用的布局控件:Canvas.Grid.StackPanel. Panel类是开发Windows 8 Store应用中一个重要类,它在Windows 8 Store应用布局系统中扮演非常重要角色. Panel可以承载多个子元素,面板类可以把子元素存放在栈中.或网格里面.或把子元素停靠在其边缘等. Panel类自身是一个抽象类,下面是Panel类的层次结构: Windows 8 Store应用中包含的三个标准布局控件:Ca

快速构建Windows 8风格应用2-创建调试应用

原文:快速构建Windows 8风格应用2-创建调试应用 本篇博文主要介绍的是创建应用时可以选择哪些模版,生成默认的Windows 8风格应用解决方案中含哪些文件,最后是如何调试Windows 8风格应用. 我们如何使用Visual Studio 2012创建Windows 8风格应用呢?可归结为以下几步: 1.选择我们要使用的开发语言,例如:JavaScript.C++.C#.Visual Basic. 2.选择项目模版,可以选择以下常用的项目模版: 1)拆分应用(Split App)模版