数据有两个基本的分类,应用数据和用户数据,而用户数据则为由用户拥有的数据,如文档,音乐或电子邮件等,下面将大致的介绍一下应用数据的基本操作。

应用数据:应用数据包含APP的状态信息(如运行时状态,用户设置等),包括设置和文件,应用数据在应用程序安装时有自己的存储区域,而在卸载时会清空

  • 设置:存储用户首选项和应用程序状态,可存储多种数据类型
    • UInt8、Int16、UInt16、Int32、UInt32、Int64、UInt64、Single、Double
    • Boolean
    • Char16 和 String
    • DateTime 和 TimeSpan
    • GUID、Point、Size、Rect
    • ApplicationDataCompositeValue:一组必须按原子方式序列化和反序列化的相关应用设置。使用复合设置可轻松处理相互依赖的设置的原子更新。系统会在并发访问和漫游时确保复合设置的完整性。复合设置针对少量数据进行了优化,如果将它们用于大型数据集,性能可能很差。
  • 文件:使用文件存储二进制文件,或自定义的序列化类型

上面提到过应用数据包括设置和文件

而应用数据根据存储的性质又分为三类:

  • 本地数据
  • 漫游数据:用户可轻松地在多个设备之间保持应用的应用数据同步
  • 临时数据:临时应用数据存储类似于缓存

所以相应的就有本地设置和本地文件,漫游设置和漫游文件,临时设置和临时文件

不同类型的设置和文件的API如下:

  • 本地设置:ApplicationData.Current.LocalSettings
  • 本地文件:ApplicationData.Current.LocalFolder
  • 漫游设置:ApplicationData.Current.RoamingSettings
  • 漫游文件:ApplicationData.Current.RoamingFolder
  • 临时设置:ApplicationData.Current.TemporarySettings
  • 临时文件:ApplicationData.Current.TemporaryFolder

设置的基本操作

设置是一个ApplicationDataContainer类型的对象,关于ApplicationDataContainer类的介绍请参照官方文档 ,这里只是介绍一些简单的操作。

简单设置

     ApplicationDataContainer localSettings = ApplicationData.Current.LocalSettings;//获取本地设置,你也可以获取漫游设置和临时设置,后面的操作都一样
localSettings.Values["theme"] = "Light";//在本地设置中添加一个设置项,类似字典赋值方式,theme是localSettings里面的key,而"Light"是值,可以设置的类型在上面已经列出
localSettings.Values.Remove("theme");//删除设置项
string theme = localSettings.Values["theme"] as string;//读取设置项 ApplicationDataCompositeValue simpleSettings = new ApplicationDataCompositeValue();//创建简单设置的容器
simpleSettings["theme"] = "Light";
simpleSettings["FontFamily"] = "微软雅黑";
localSettings.Values["SimpleSettings"] = simpleSettings;//将复合设置项添加到上面获取的本地设置中 ApplicationDataCompositeValue advanceSettings = new ApplicationDataCompositeValue();//创建简单设置的容器
advanceSettings["IsSync"] = false;
localSettings.Values["AdvanceSettings"] = advanceSettings;

这样就可以实现设置项的复合操作,具体操作参照:https://msdn.microsoft.com/zh-cn/library/windows/apps/xaml/windows.storage.applicationdatacontainer.aspx

文件的基本操作

与文件操作相关的两个基本的类是StorageFile和StorageFoler

            StorageFolder folder = ApplicationData.Current.LocalFolder;//获得本地文件夹
StorageFile file = await folder.CreateFileAsync("first.txt", CreationCollisionOption.OpenIfExists);//创建文件
await FileIO.WriteTextAsync(file, "文本的内容");//使用FileIO将字符串写入文件 StorageFile fileOpen = folder.GetFileAsync("first.txt");
string content = await FileIO.ReadTextAsync(fileOpen);//读取文本

以上操作稍作修改就可应用于漫游数据和临时数据,漫游数据可以实现多设备间的数据同步,但是数据同步有一定的条件。临时数据类似于缓存,可用于保存一些缓存数据,如微博里的图片缓存等,系统维护时会自动删除,或者可以随时手动删除。

除了对数据的操作之外,你也可以对数据进行版本控制:使用Application.Version属性和ApplicationData.SetVersionAsync

以上只是对应用数据的一些简单操作,熟悉这些操作后你可以实现更高级的操作,具体的操作可以参照官方文档应用数据和设置

光说不练假把式,所以如果你看了上述操作后如果不太明白的话那就直接撸代码,练习中慢慢就会明白,同时如果你发现上述任何错误欢迎指正。

UWP入门——应用数据和设置的更多相关文章

  1. UWP入门(四)--设置控件样式

    原文:UWP入门(四)--设置控件样式 官方定义:可以使用 XAML 框架通过多种方式自定义应用的外观. 通过样式可以设置控件属性,并重复使用这些设置,以便保持多个控件具有一致的外观. 可分享至不同e ...

  2. UWP入门(六)-- ResourceDictionary 和 XAML 资源引用

    原文:UWP入门(六)-- ResourceDictionary 和 XAML 资源引用 你最希望声明为 XAML 资源的 XAML 元素包括 Style.ControlTemplate.动画组件和 ...

  3. UWP 入门教程2——如何实现自适应用户界面

    系列文章 UWP入门教程1——UWP的前世今生 如上文所说的,布局面板根据可用的屏幕空间,指定界面元素的大小和位置.例如StackPanel 会水平或垂直排列界面元素.Grid 布局与CSS 中的表格 ...

  4. 【第二篇】ASP.NET MVC快速入门之数据注解(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

  5. UWP入门(十二)--数据绑定用法

    原文:UWP入门(十二)--数据绑定用法 主要几个元素: Template DataTemplate ItemSource 数据绑定是一个数据提取的方法,能使数据和UI上的控件紧密相连,下面的Demo ...

  6. UWP入门(七)--SplitView详解与页面跳转

    原文:UWP入门(七)--SplitView详解与页面跳转 官方文档,逼着自己用英文看,UWP开发离不开官方文档 1. SplitView 拆分视图控件 拆分视图控件具有一个可展开/可折叠的窗格和一个 ...

  7. UWP入门(五)--控件模板

    原文:UWP入门(五)--控件模板 通过在 XAML 框架中创建控件模板,你可以自定义控件的可视结构和可视行为(eg:勾选框的三种状态). 控件有多个属性,如 Background.Foregroun ...

  8. UWP入门(十一)--使用选取器打开文件和文件夹

    原文:UWP入门(十一)--使用选取器打开文件和文件夹 很漂亮的功能,很有趣 重要的 API FileOpenPicker FolderPicker StorageFile 通过让用户与选取器交互来访 ...

  9. UWP入门(十)--创建、写入和读取文件

    原文:UWP入门(十)--创建.写入和读取文件 核心的 API github代码 StorageFolder 类 StorageFile 类 FileIO 类 使用 StorageFile 对象读取和 ...

随机推荐

  1. Spring Boot 使用IntelliJ IDEA创建一个web开发实例(五)

    使用application.ym进行多环境配置 1.配置激活选项 spring: profiles: active: dev 2.在配置文件添加若干个英文状态下的短横线即可区分 spring: pro ...

  2. Spyder简述

    导言 想打造轮子, 就必须要有一套完善的造轮子的工具. 我在jupyter+sciTE的组合里转来转去, 最后还是打算放弃这个组合, 因为离开了自动完成/调用提示/随时随地的访问文档帮助, 前行之路太 ...

  3. 你应该了解的强大CSS表达式 ----- expression

    IE5及其以后版本支持在CSS中使用expression,用来把CSS属性和Javas cript表达式关联起来,这里的CSS属性可以是元素固有的属性,也可以是自定义属性.就是说CSS属性后面可以是一 ...

  4. HDU 1181 变形课 (深搜)

    题目连接 Problem Description 呃......变形课上Harry碰到了一点小麻烦,因为他并不像Hermione那样能够记住所有的咒语而随意的将一个棒球变成刺猬什么的,但是他发现了变形 ...

  5. JS设计模式——11.适配器模式

    适配器模式概述 适配器模式可用来在现有接口和不兼容的类之间进行适配.使用这种模式的对象又叫包装器(wrapper). 适配器特点 从表面看,适配器模式很像门面模式.她们都要对别的对象进行包装并改变其呈 ...

  6. windebug常用命令

    使用~查看所有线程 切换到一号线程:~1s 查看所有线程的托管堆栈  ~* e!clrstack 怎么查看,当前线程下,变量的信息? 对于托管代码而言,最核心的命令就是!do(dump object的 ...

  7. 无需登录-悟空CRM 存储型XSS

    无需登录-悟空CRM 存储型XSS 审计悟空的缘由是看见某云爆出CRM的getshell,于是就想着去挖出来瞅瞅!但可能自己把自己给局限了,就想着去挖那些无限制访问的文件. 故事的发生点 漏洞文件:/ ...

  8. mybatis模糊查询防止SQL注入

    SQL注入,大家都不陌生,是一种常见的攻击方式.攻击者在界面的表单信息或URL上输入一些奇怪的SQL片段(例如“or ‘1’=’1’”这样的语句),有可能入侵参数检验不足的应用程序.所以,在我们的应用 ...

  9. gcc 编译 + 选项【转】

    转自:http://blog.csdn.net/princess9/article/details/6567678 一般来说要现有项目中的编译选项,设置新的project的编译选项 编译器 就是将“高 ...

  10. 002_安装第三方APP好的站点及解除安全与隐私限制

    一.解除安全与隐私限制的任何来源. http://bbs.feng.com/read-htm-tid-10714286.html 接下来,我们就打开终端,然后输入以下命令:   sudo spctl ...