zoukankan      html  css  js  c++  java
  • UWP开发:应用文件存储

    应用设置由于数据量和数据类型的限制,有很大的局限性,所以还需要应用文件存储,以文件的方式存储数据。在每个应用的应用数据存储中,该应用拥有系统定义的根目录:一个用于本地文件,一个用于漫游文件,还有一个用于临时文件。应用可向根目录添加新文件和新目录。文件存储和应用设置的层次限制是一样的,最多可以嵌套32层深,而树的宽度是没有限制的。

    1)本地应用文件

       本地应用是只存储在客户端的存储数据,所存储的数据没有总大小限制,并存储的区域是属于程序的沙盒,只有应用程序自己可以访问,其他程序无法访问,这样可以保证程序的安全性。由于本地应用文件是属于应用程序自己的存储文件,当应用程序卸载之后,这些数据也会删除。本地应用文件的根目录可以通过 ApplicationData 对象的 LocalFolder属性来访问,即ApplicationData.Current.LocalFolder 类型为StroageFolder对象。

    2) 漫游应用文件(ApplicationData.Current.RoamingFolder)

    漫游应用文件是指在同一账号登陆的不同设备中共享的数据,用户可以轻松地在多个设备之间保持应用的应用数据同

    步。可以通过ApplicationData对象的RoamingFolder属性来访问,即

    ApplicationData.Current.RoamingFolder。

      a. 漫游数据大小有限制

    大小由ApplicationData类的RoamingStorageQuota属性决定,RoamingStorageQuota属性表示获取可从漫游应

    用程序数据存储区同步到云的数据的最大大小。所以,最好是仅为用户首选项、链接和小型数据文件使用漫游数据。

      b. 数据改变需同步,及时回应

    如果需要在程序中监控漫游数据的变化,应该注册处理ApplicationData类的DataChanged事件,处理操作在漫游

    应用数据更改时执行。

      c. 数据版本的统一性

    在设备上更新应用之前,系统不会将应用数据更新到用户安装了该应用的其他设备。

      d. 漫游数据有时间限制

    漫游数据不是可以无限期同步的,有30天的时间间隔的限制。当然用户在这期间先卸载应用再安装应用,只要不超过

    时间间隔,依然可以在云中同步漫游数据。

      e. 漫游数据同步的时机依赖于网络和设备

    系统会随机漫游应用数据,但不会保证及时同步。当设备没有联网或者网络高度延迟时,漫游也会明显延迟。当然,

    可以通过一个特殊的设置键来设置一个高优先级别的漫游设置数据。

    这个高优先级别的Key为HighPriority,系统会以更快的速度在多个设备间同步HighPriority所对应的数据。它也支持

    ApplicationDatCompositeValue数据,但大小限制在8KB,当超过此限制时,将被是为常规漫游设置。

    3)临时应用文件(ApplicationData.Current.TemporaryFolder)

    临时应用数据存储类似缓存,不会漫游,随时可以被删除,所以临时文件通常用于存储一些非重要性的临时文件信

    息。临时应用文件的根目录文件夹可以通过ApplicationData类的TemporaryFolder属性来访问,即是

    ApplicationData.Current.TemporaryFolder

    获取应用文件根目录的方式,2种:

    1. 除了上面提到的获取这三种根目录的方式,利用ApplicatonData类来获取:
    ApplicationData.Current.LocalFolder-----本地文件夹
    ApplicationData.Current.RoamingFolder-----漫游文件夹
    ApplicationData.Current.TemporaryFolder-----临时文件夹

    2. 还可以利用应用文件的URI方案获取。

    ========================================

    操作数据存储,实际上就是操作应用文件和应用文件夹。有StorageFile类和StorageFolder类可供操作。

    1,创建文件夹和文件

    //未完待续

  • 相关阅读:
    body.filters 出现未指明错误
    利用sql server创建可重复运行的存储过程
    有关如何阻止ASP.NET的按钮控件提交页面的小发现
    ASP.NET 2.0中减少ViewState大小的一点小发现
    DataSet 的 Tables 属性对表名大小写敏感性的解惑[翻译]
    利用Sql Server Management Studio 创建视图的问题
    在用数据绑定的时候我为什么不能把焦点移出(Tab out)我的控件?(译)
    什么是 Change Notification,为什么它很重要(译)
    Rms For Sharepoint
    sharepoint 2010 容量边界
  • 原文地址:https://www.cnblogs.com/ldzhangyx/p/6235449.html
Copyright © 2011-2022 走看看