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 ...
随机推荐
- c语言基础:各种数据类型的输出占位符
c语言中的输出操作相对java来说是比较麻烦的,每种数据类型的输出都有各自的占位符: 下面是各种数据类型的输出占位符: short/int : %d ; printf("这个整数是:%d&q ...
- 【POJ】【3710】Christmas Game
博弈论 贾志豪论文上的题目……题解请看论文 Orz了一下Hzwer Source Code Problem: User: sdfzyhy Memory: 716K Time: 0MS Language ...
- jsp的<%@ include file="jsp/common.jsp" %>报错误Duplicate local variable basePath
将公共引入的文件放到common.jsp中,其他页面引入该jsp即可使用 <%@ page language="java" import="java.util.*& ...
- Html特殊字符转义处理
#region 将Html特殊字符转义处理 /// <summary> /// 将Html特殊字符转义处理 /// </summary> ...
- 几款实用的 JavaScript 图形图表库
一款好的图表插件不是那么容易找到的.最近项目里需要实现统计图表功能,所以在网上搜罗了一圈,找到一些不错的图表插件,分享大家.众多周知,图形和图表要比文本更具表现力和说服力.这里给大家精心推荐几款实用的 ...
- hbase操作的问题
写了一个java程序,需要向hbase中写入大量的数据,但是这个程序执行一半就报错, 问题是,此时已经写入了很多数据. 查看jps,发现hmaster进程崩溃了. 基于以上信息,发现是在程序中,链接h ...
- uniqueidentifier 数据类型(转)
想要产生这种唯一标识的格式的数据: 6F9619FF-8B86-D011-B42D-00C04FC964FF 应该怎么做呢?答: uniqueidentifier 数据类型可存储 16 字节的二进制 ...
- 【QT】OpenCV配置
很郁闷的表示我的opencv放在 D:\\program files 里面路径有个空格,导致我不得不把整个opencv又拷贝到了一个没有空格的路径下面命名为opencvForQt 网上有各种用CMa ...
- SDUT图结构练习——最小生成树
http://acm.sdut.edu.cn/sdutoj/showproblem.php?pid=2144&cid=1186 这道题一开始是用prim算法做的,一直错一直错,后来问了帅郭改用 ...
- NET 使用HtmlAgilityPack抓取网页数据
刚刚学习了XPath路径表达式,主要是对XML文档中的节点进行搜索,通过XPath表达式可以对XML文档中的节点位置进行快速定位和访问,html也是也是一种类似于xml的标记语言,但是语法没有那么严谨 ...