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

使用 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. 在SQL SErver中实现数组功能

    T-SQL象数组一样处理字符串.分割字符串    在日常的编程过程中,数组是要经常使用到的.在利用SQL对数据库进行操作时,有时就想在SQL使用数组,比如将1,2,3,4,5拆分成数组.可惜的是在T- ...

  2. [转载+原创]Emgu CV on C# (三) —— Emgu CV on 均衡化

    本文简要描述了均衡化原理及数学实现等理论问题,最终利用emgucv实现图像的灰度均衡. 直方图的均衡化,这是图像增强的常用方法. 一.均衡化原理及数学实现(转载) 均衡化原理及数学实现可重点参看——& ...

  3. 数据库SQLiteDatabase

    package com.baclock.entity; import android.provider.BaseColumns; /** * Created by Jack on 5/4/2016. ...

  4. stdint.h 文件 int8_t uint8_t int16_t uint16_t

    http://blog.chinaunix.net/uid-26588712-id-3068151.html c++ 数据类型 按照posix标准,一般整型对应的*_t类型为:1字节     uint ...

  5. C#操作config文件

    以下是app.config或web.config的定义,定义了一个参数,键为Isinit,值为false <?xml version="1.0"?> <confi ...

  6. Linked List vs Array

    Both Arrays and Linked List can be used to store linear data of similar types, but they both have so ...

  7. HDU 1829 A Bug's Life(种类并查集)

    思路:见代码吧. #include <stdio.h> #include <string.h> #include <set> #include <vector ...

  8. C Primer Plus 第5章 运算符、表达式和语句 编程练习

    1. #include <stdio.h> ; int main(void) { int min, hour, lmin; printf("请输入分钟数: \n"); ...

  9. http://my.oschina.net/u/1185331/blog/502350

    http://my.oschina.net/u/1185331/blog/502350

  10. Spark安装部署

    原创文章,转载请注明: 转载自www.cnblogs.com/tovin/p/3820979.html 一.系统环境配置 参照http://www.cnblogs.com/tovin/p/381890 ...