UWP:本地应用数据
获取应用的设置和文件容器
使用 ApplicationData.LocalSettings 属性可以获取 ApplicationDataContainer 对象中的设置。
注意:每个设置的名称最长可为 255 字符。每个设置的大小可以多达 8K 字节,而每个复合设置的大小可以多达 64K 字节。
使用ApplicationData.LocalFolder 属性可以获取 StorageFolder 对象中的文件。
下面是我封装的对应用数据操作的一个帮助类,主要围绕以上两个API:
public class AppDataHelper
{
#region 字段
/// <summary>
/// 获取应用的设置容器
/// </summary>
private static Windows.Storage.ApplicationDataContainer localSettings = Windows.Storage.ApplicationData.Current.LocalSettings; /// <summary>
/// 获取独立存储文件
/// </summary>
private static Windows.Storage.StorageFolder localFolder = Windows.Storage.ApplicationData.Current.LocalFolder;
#endregion #region Set应用设置(简单设置,复合设置,容器中的设置)
/// <summary>
/// 简单设置
/// </summary>
/// <param name="key"></param>
/// <param name="value"></param>
public static void SetValue(string key, string value)
{
localSettings.Values[key] = value;
} /// <summary>
/// 复合设置
/// </summary>
/// <param name="composite"></param>
public static void SetCompositeValue(Windows.Storage.ApplicationDataCompositeValue composite)
{
composite["intVal"] = ;
composite["strVal"] = "string"; localSettings.Values["exampleCompositeSetting"] = composite;
} /// <summary>
/// 创建设置容器
/// </summary>
/// <param name="containerName"></param>
/// <returns></returns>
private static Windows.Storage.ApplicationDataContainer CreateContainer(string containerName)
{
return localSettings.CreateContainer(containerName, Windows.Storage.ApplicationDataCreateDisposition.Always);
} /// <summary>
/// 讲设置保存到设置容器
/// </summary>
/// <param name="containerName"></param>
/// <param name="key"></param>
/// <param name="value"></param>
public static void SetContainerValue(string containerName, string key, string value)
{
if (!localSettings.Containers.ContainsKey(containerName))
CreateContainer(containerName); localSettings.Containers[containerName].Values[key] = value;
}
#endregion #region Get应用设置(简单设置,复合设置,容器中的设置) /// <summary>
/// 获取应用设置
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
public static object GetValue(string key)
{
return localSettings.Values[key];
} /// <summary>
/// 获取复合设置
/// </summary>
/// <param name="compositeKey"></param>
/// <returns></returns>
public static Windows.Storage.ApplicationDataCompositeValue GetCompositeValue(string compositeKey)
{
// Composite setting
Windows.Storage.ApplicationDataCompositeValue composite =
(Windows.Storage.ApplicationDataCompositeValue)localSettings.Values[compositeKey]; return composite;
} /// <summary>
/// 从设置容器中获取应用设置
/// </summary>
/// <returns></returns>
public static object GetValueByContainer(string containerName, string key)
{
bool hasContainer = localSettings.Containers.ContainsKey(containerName); if (hasContainer)
{
return localSettings.Containers[containerName].Values.ContainsKey(key);
}
return null;
}
#endregion #region Remove已完成的设置
/// <summary>
/// 删除简单设置或复合设置
/// </summary>
/// <param name="key"></param>
public static void Remove(string key)
{
localSettings.Values.Remove(key);
} /// <summary>
/// 删除设置容器
/// </summary>
/// <param name="key"></param>
public static void RemoveContainer(string containerName)
{
localSettings.DeleteContainer(containerName);
} #endregion #region 文件存储操作 /// <summary>
/// 写入文件
/// </summary>
public async void WriteTimestamp(string fileName,string contents)
{
try
{
Windows.Storage.StorageFile sampleFile = await localFolder.CreateFileAsync(fileName, Windows.Storage.CreationCollisionOption.ReplaceExisting);
await Windows.Storage.FileIO.WriteTextAsync(sampleFile, contents);
}
catch (Exception)
{
throw;
} } /// <summary>
/// 读取文件
/// </summary>
public async Task<string> ReadTimestamp(string fileName)
{
try
{
Windows.Storage.StorageFile sampleFile = await localFolder.GetFileAsync(fileName);
string contents = await Windows.Storage.FileIO.ReadTextAsync(sampleFile);
return contents;
}
catch (Exception)
{
return "read faild";
}
}
#endregion
}
UWP:本地应用数据的更多相关文章
- 烂泥:阿里云RDS本地恢复数据
本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb 公司目前使用的数据库是阿里云的RDS,目前RDS的版本为mysql5.6.如下: 现在要 ...
- HTML5本地缓存数据
//HTML5本地缓存数据 function putObj(key, data) { if (!!window.localStorage) { var obj = { "key": ...
- [New Portal]Windows Azure Virtual Machine (14) 在本地制作数据文件VHD并上传至Azure(1)
<Windows Azure Platform 系列文章目录> 之前的内容里,我介绍了如何将本地的Server 2012中文版 VHD上传至Windows Azure,并创建基于该Serv ...
- iOS五种本地缓存数据方式
iOS五种本地缓存数据方式 iOS本地缓存数据方式有五种:前言 1.直接写文件方式:可以存储的对象有NSString.NSArray.NSDictionary.NSData.NSNumber,数据 ...
- vue配置 请求本地json数据
第一步:在build文件夹下找到webpack.dev.conf.js文件,在const portfinder = require('portfinder')后添加 //第一步const expres ...
- Postman Postman测试接口之POST提交本地文件数据
Postman测试接口之POST提交本地文件数据 by:授客 QQ:1033553122 本文主要是针对用Postman POST提交本地文件数据的方法做个简单介绍 举例: 文件同步接口 接口地址 ...
- WP8.1学习系列(第二十一章)——本地应用数据
了解如何存储和检索本地应用数据存储中的设置和文件. 路线图: 本主题与其他主题有何关联?请参阅: 使用 C# 或 Visual Basic 的 Windows 运行时应用的路线图 使用 C++ 的 W ...
- 魔术布局效果-使用本地JSON数据提供数据服务
在线演示 有社区朋友不知道如何修改外部OpenAPI为本地的JSON服务,这里做一个简单演示. 阅读原文:魔术布局效果-使用本地JSON数据提供数据服务
- 孤荷凌寒自学python第六十一天在Fedora28版的linux系统上找搭建本地Mongodb数据服务
孤荷凌寒自学python第六十一天在Fedora28版的linux系统上找搭建本地Mongodb数据服务 (完整学习过程屏幕记录视频地址在文末) 今天是学习mongoDB数据库的第七天.成功在本地搭建 ...
- 孤荷凌寒自学python第六十天在windows10上搭建本地Mongodb数据服务
孤荷凌寒自学python第六十天在windows10上找搭建本地Mongodb数据服务 (完整学习过程屏幕记录视频地址在文末) 今天是学习mongoDB数据库的第六天.成功在本地搭建了windows ...
随机推荐
- request 路径随笔
1. 路劲可分为 绝对路径 和 相对路径 2. 绝对路径 (开头带"/") 前端: http://localhost:8080/myWebApp/user/login.jsp /m ...
- 解决Maven默认仓库没有的jar下载(二)
前言: 在 “解决Maven不能下载“oracle.aspectjweaver.com.springsource.net.sf.cglib”jar(http://www.cnblogs.com/wql ...
- C#调用大漠插件的方法和实例
大漠插件是一个很不错的东西,在按键精灵和易语言里面用得很多,可以后台找图找字,写游戏自动脚本用得特别多.前面写一个微信的自动脚本,查了一些资料,易语言不太熟悉,按键精灵功能上可能不好实现,就找了些资料 ...
- Tower of Hanoi问题
[问题描述] 有A, B, C三个塔座,A上套有n个直径不同的圆 盘,按直径从小到大叠放,形如宝塔,编号1, 2, 3 … n. 要求将n个圆盘从A移到C,叠放顺序不变,移动过程中遵循 下列原则: w ...
- Scrum敏捷开发简介
Agile 敏捷开发实践中,强调团队的自我管理.在 Scrum 中,自我团队管理体现在每天的 Scrum 会议中和日常的协同工作,在每天的 Scrum 例会中,团队成员一般回答一下几个问题 : 昨天完 ...
- python的dict()函数
dict(one=1,two=2) dict({'one':1,'two':2}) dict((('one',1),('two',2))) dict((['one',1],['two',2])) di ...
- POJ 1060 Modular multiplication of polynomials(多项式的加减乘除,除法转化成减法来求)
题意:给出f(x),g(x),h(x)的 (最高次幂+1)的值,以及它们的各项系数,求f(x)*g(x)/h(x)的余数. 这里多项式的系数只有1或0,因为题目要求:这里多项式的加减法是将系数相加/减 ...
- ApplePay扩大全球发卡行合作,“苹果税”撑不住了?
5月11日Apple Pay全面登陆加拿大地区,更为重要的是,苹果终于在一些地区,开始和美国运通之外的发卡行达成了合作.这对于老是因为分账问题不愿意走出下一步的Apple Pay来说,已经是巨大的进步 ...
- 枚举桌面应用程序lnk路径并得到对应程序的绝对路径(使用SHGetDesktopFolder函数枚举,然后使用COM查询IShellFolder,IShellLink和IPersistFile接口)
// 枚举桌面上应用程序的lnk路径 void EnumDesktopLnkPath() { WCHAR szPath[MAX_PATH] = {0}; SHGetSpecialFolderPathW ...
- List应用举例
1.集合的嵌套遍历 学生类: package listexercise; /** * Created by gao on 15-12-9. */ public class Student { priv ...