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 ...
随机推荐
- Oracle 多行记录合并/连接/聚合字符串的几种方法
怎么合并多行记录的字符串,一直是oracle新手喜欢问的SQL问题之一,关于这个问题的帖子我看过不下30个了,现在就对这个问题,进行一个总结.-什么是合并多行字符串(连接字符串)呢,例如: SQL&g ...
- mysql存储过程出现OUT or INOUT argument 10 for routine
OUT or INOUT argument 10 for routine * is not a variable or NEW pseudo-variable 我查网上很多出现在call的时候没有添加 ...
- 1891: 丘比特的烦恼 - BZOJ
Description 随着社会的不断发展,人与人之间的感情越来越功利化.最近,爱神丘比特发现,爱情也已不再是完全纯洁的了.这使得丘比特很是苦恼,他越来越难找到合适的男女,并向他们射去丘比特之箭.于是 ...
- mysql 的物理结构
mysql 的物理结构 跟着小辉老师学来的mysql知识,由于本人记性不好,但又觉得它很重要故把它记了下来,方便自己以后回忆,也希望能对大家有所帮助. 以下内容来自 小辉 老师的mysql教程,和部分 ...
- myeclipse/eclipse添加Spket插件实现ExtJs4.2/ExtJs3智能提示
前言 感谢luotao,本博客是copy这篇博客的:http://www.cnblogs.com/luotaoyeah/p/3803926.html ,因为太重要了,所以笔者再写一次. 重要说明:ec ...
- 【转】Dancing Links题集
转自:http://blog.csdn.net/shahdza/article/details/7986037 POJ3740 Easy Finding [精确覆盖基础题]HUST1017 Exact ...
- 剑指offer--面试题10
题目:求整数二进制表示中1的个数. 分析:此题直接考查二进制表示与位运算!!! 正数和负数的二进制表示不同!在计算机中,正数的二进制表示即为通常所写的二进制:而负数的二进制表示则用补码表示,即原码的反 ...
- Ajax出入江湖
window.onload = initAll; var xhr = false; function initAll() { if (window.XMLHttpRequest) { xhr = ne ...
- POJ2217 Secretary 后缀数组&&高度数组
学后缀数组后的一道裸题.先来讲讲收获,作为字符串初学者,后缀数组也是刚刚在学,所幸的是有一篇好的论文<后缀数组--处理字符串的有力工具>by 罗穗骞,里面非常详尽地介绍了有关后缀数组的概念 ...
- POJ2442Sequence
http://poj.org/problem?id=2442 题意 :就是输入m个数集,每个含n个数,求从每个集合取一个数后,按非降序输出前n小的和. 思路 : 本来打算是用几个for循环的,后来觉得 ...