获取应用的设置和文件容器

使用 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:本地应用数据的更多相关文章

  1. 烂泥:阿里云RDS本地恢复数据

    本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb 公司目前使用的数据库是阿里云的RDS,目前RDS的版本为mysql5.6.如下: 现在要 ...

  2. HTML5本地缓存数据

    //HTML5本地缓存数据 function putObj(key, data) { if (!!window.localStorage) { var obj = { "key": ...

  3. [New Portal]Windows Azure Virtual Machine (14) 在本地制作数据文件VHD并上传至Azure(1)

    <Windows Azure Platform 系列文章目录> 之前的内容里,我介绍了如何将本地的Server 2012中文版 VHD上传至Windows Azure,并创建基于该Serv ...

  4. iOS五种本地缓存数据方式

    iOS五种本地缓存数据方式   iOS本地缓存数据方式有五种:前言 1.直接写文件方式:可以存储的对象有NSString.NSArray.NSDictionary.NSData.NSNumber,数据 ...

  5. vue配置 请求本地json数据

    第一步:在build文件夹下找到webpack.dev.conf.js文件,在const portfinder = require('portfinder')后添加 //第一步const expres ...

  6. Postman Postman测试接口之POST提交本地文件数据

    Postman测试接口之POST提交本地文件数据   by:授客 QQ:1033553122 本文主要是针对用Postman POST提交本地文件数据的方法做个简单介绍 举例: 文件同步接口 接口地址 ...

  7. WP8.1学习系列(第二十一章)——本地应用数据

    了解如何存储和检索本地应用数据存储中的设置和文件. 路线图: 本主题与其他主题有何关联?请参阅: 使用 C# 或 Visual Basic 的 Windows 运行时应用的路线图 使用 C++ 的 W ...

  8. 魔术布局效果-使用本地JSON数据提供数据服务

    在线演示 有社区朋友不知道如何修改外部OpenAPI为本地的JSON服务,这里做一个简单演示. 阅读原文:魔术布局效果-使用本地JSON数据提供数据服务

  9. 孤荷凌寒自学python第六十一天在Fedora28版的linux系统上找搭建本地Mongodb数据服务

    孤荷凌寒自学python第六十一天在Fedora28版的linux系统上找搭建本地Mongodb数据服务 (完整学习过程屏幕记录视频地址在文末) 今天是学习mongoDB数据库的第七天.成功在本地搭建 ...

  10. 孤荷凌寒自学python第六十天在windows10上搭建本地Mongodb数据服务

     孤荷凌寒自学python第六十天在windows10上找搭建本地Mongodb数据服务 (完整学习过程屏幕记录视频地址在文末) 今天是学习mongoDB数据库的第六天.成功在本地搭建了windows ...

随机推荐

  1. jquery插件dataTables添加序号列

    官网方法实例: $(document).ready(function() {     var t = $('#example').DataTable({         "columnDef ...

  2. 父<IFRAME>获取子页属性以及子页中<IFRAME>的方法

    例子如下: 1.父页index.jsp <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "ht ...

  3. iOS开发之深入探讨runtime机制01-类与对象

    最近有个同事问我关于“runtime机制”的问题,我想可能很多人对这个都不是太清楚,在这里,和大家分享一下我对于runtime机制的理解.要深入理解runtime,首先要从最基本的类与对象开始,本文将 ...

  4. hdu 3807

    很好的思路     枚举有多少人有ipad 判是否满足题目给出的条件 #include <iostream> #include <cstring> #include <c ...

  5. Consumer closed input channel or an error occurred. events=0x8 channel is unrecoverably broken and will be disposed(待解决)

    跟文件读取有关?关闭文件读取试试. 有可能是读取文件 出现报错

  6. 原 Linux搭建SVN 服务器2

    原 Linux搭建SVN 服务器 发表于1年前(2014-08-05 17:55)   阅读(12257) | 评论(3) 31人收藏此文章, 我要收藏 赞3 摘要 Linux搭建SVN 服务器 目录 ...

  7. JsRender系列demo(4)-if else

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...

  8. AutoEventWireup解释

    这一事件聚合了当前页是否自动关联某些特殊事件. 首先,从浏览器页面出发的事件不能立刻在本地得到处理,而是POST至服务器上,因此,asp.net建立了委托(代理)机制.在建立一个事件的同事,建立相应的 ...

  9. tomcat免重启随意更改java代码 提高开发效率

    转载:http://developer.51cto.com/art/201012/241243.htm 做为了一个java开发人员,总是为因为要增加一个类,或是增加删除一个方法,甚至修改一个小处代码而 ...

  10. 基于Struts2框架实现登录案例

    一,准备工作  1)新建web项目,并导入Struts2jar文件和配置web.xml文件. struts2 jar文件 web.xml文件 <?xml version="1.0&qu ...