Windows Phone 8.1中应用数据之应用文件
来源:互联网 发布:没爱了网络语的意思 编辑:程序博客网 时间:2024/06/08 01:37
应用设置存储在存储数据方面有一些局限性,比如只能存储一些简单数据类型的数据,无法满足复杂的数据存储以及
大量的数据存储,所以需要应用文件存储来弥补这个缺陷。
每个应用拥有系统定义的三种文件:一个用于本地文件,一个用于漫游文件,还有一个用于临时文件。应用可以向根
目录添加新文件和新目录,和应用设置存储一样,应用文件一共最多可以嵌套32层深。
首先先明确一下三种文件的区别,这边同样要用到ApplicationData类:
1. 本地应用文件(ApplicationData.Current.LocalFolder)
存储在客户端的存储数据,没有总大小限制,存储的区域属于程序的沙箱里,只有应用程序自己才可以访问,保障了
数据的安全性。本地应用文件的根目录文件夹可以通过ApplicationData对象的LocalFolder属性来访问,即
ApplicationData.Current.LocalFolder。类型是文件夹对象StorageFolder。
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方案获取:
三个根目录文件夹所对应的保存路径的格式分别如下:
(1)LocalFolder文件夹的保存路径格式:
%USERPROFILE%\APPDATA\Local\Packages\{PackageId}\LocalState
(2)RoamingFolder文件夹的保存路径格式:
%USERPROFILE%\APPDATA\Local\Packages\{PackageId}\RoamingState
(3)TemporaryFolder文件夹的保存路径格式:
%USERPROFILE%\APPDATA\Local\Packages\{PackageId}\TempState
但不能直接通过此路径来访问文件,而是需要使用本地文件夹的ms-appdata的URI方案:
(1)LocalFolder对应的URI方案为:
ms-appdata:///local/
(2)RoamingFolder对应的URI方案为:
ms-appdata:///roaming/
(3)TemporaryFolder对应的URI方案为:
ms-appdata:///temp/
知道了URI方案,之后只需要使用StorageFile类的静态方法GetFileFromApplicationUriAsync来根据URI获取文件。
var file = await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appdata:///local/test.txt"));
注意点:文件和文件夹的路径在URI方案名称的最后一个斜杠后面不能超过185个字符。
- Windows Phone 8.1中应用数据之应用文件
- Windows Phone 8.1中应用数据之应用设置
- Windows phone 应用开发-数据缓存
- Windows Phone 应用开发-数据缓存
- Windows phone 应用开发[2]-数据缓存
- Windows Phone开发之应用商店
- Windows Phone - 商务应用
- Windows Phone 应用栏
- Windows Phone 中应用颜色设置改变主题的应用
- 《深入浅出Windows Phone 8应用开发》之手机存储卡数据
- 数据分析:Windows Phone Marketplace应用总数突破5万
- 02,设计Windows Phone 应用
- Windows phone应用开发[17]
- Windows Phone应用的生命周期
- Windows Phone 7 网络编程之留言板应用
- Windows Phone开发之枚举类型简单应用
- Windows Phone 7 应用 sqlite 数据库 之 增删改查
- 《深入浅出Windows Phone 8应用开发》之蓝牙编程
- Sharepoint Workflow Sent Email
- 快速排序的非递归实现
- 不能打开到主机的连接,在端口1521:连接失败的解决方法(修改远程桌面连接端口)
- codeforces545E Paths and Trees
- Unity3D easytouch虚拟摇杆及其应用
- Windows Phone 8.1中应用数据之应用文件
- codeforces 380A A. Sereja and Prefixes(二分)
- was altered from
- TCP流重组的研究
- 关于工作与生活
- python 类继承
- Gradle第十二章:使用Gradle 图形用户界面
- Objective-C中的instancetype和id关键字
- 【按键】短按,长按,按键释放,三种模式的按键扫描程序(软件消抖动)