class Config
{
static string path;
/// <summary>
/// 配置文件的路径
/// </summary>
public static string Path
{
get { return path; }
set { path = value; }
}
private XmlDocument xml;
private static Config instance; /// <summary>
/// 单件实例
/// </summary>
public static Config Instance
{
get
{
if (instance == null)
instance = new Config();
return instance;
}
} private Config()
{
items = new Hashtable();
xml = new XmlDocument();
if (!System.IO.File.Exists(path))
{
xml.AppendChild(xml.CreateXmlDeclaration("1.0", "utf-8", null));
xml.AppendChild(xml.CreateElement("Config"));
try
{
string dir = System.IO.Path.GetDirectoryName(path);
if (!System.IO.Directory.Exists(dir))
System.IO.Directory.CreateDirectory(dir);
}
catch { }
}
else
{
try
{
xml.Load(path);
}
catch (XmlException)
{
//如果 Xml 读取失败, 则重新创建
xml.AppendChild(xml.CreateXmlDeclaration("1.0", "utf-8", null));
xml.AppendChild(xml.CreateElement("Config"));
}
}
} /// <summary>
/// 储存
/// </summary>
public void Save()
{
foreach (object key in items.Keys)
{
XmlNode node = xml.DocumentElement.SelectSingleNode("Item[@Name='" + key.ToString() + "']");
if (node == null)
{
node = xml.CreateElement("Item");
XmlAttribute att = xml.CreateAttribute("Name");
att.Value = key.ToString();
node.Attributes.Append(att);
xml.DocumentElement.AppendChild(node);
}
node.InnerText = items[key].ToString();
} xml.Save(path);
items.Clear();
} /// <summary>
/// 读取和存储
/// </summary>
/// <param name="index"></param>
/// <returns></returns>
public string this[string key]
{
get
{
if (items.Contains(key))
{
return items[key].ToString();
}
else
{
XmlNode node = xml.DocumentElement.SelectSingleNode("Item[@Name='" + key + "']");
if (node == null)
return null;
return node.InnerText;
}
}
set
{
items[key] = value;
}
} /// <summary>
/// 储存值的链表
/// </summary>
private Hashtable items;
}

读取xml内容:

 Config.Path = Path.Combine(Environment.CurrentDirectory, "config.xml");
runTime = Convert.ToDateTime(Config.Instance["RunTime"]); //获取每日运行时间
todayDone = Config.Instance["TodayDone"]; //获取今日是否完成的标识

写入:

 #region 修改配置文件
public static bool ChangeConfig(string AppKey, string AppValue)
{
Config.Instance[AppKey] = AppValue;
Config.Instance.Save();
return true;
}
#endregion
ChangeConfig("TodayDone", "");

c# 操作临时数据---XML操作的更多相关文章

  1. C#常用操作类库三(XML操作类)

    /// <summary> /// XmlHelper 的摘要说明. /// xml操作类 /// </summary> public class XmlHelper { pr ...

  2. MySQL数据库(2)- 库的操作、表的操作、数据的操作、存储引擎的介绍

    一.库的操作 1.系统数据库 执行如下命令,查看系统数据库: mysql> show databases; 参数解释: information_schema: 虚拟库,不占用磁盘空间,存储的是数 ...

  3. 传智播客JavaWeb day09-mysql入门、数据库操作、数据库表操作、数据行操作

    不知不觉已到了第九天了,今天主要讲了关系数据库的基本概述.安装.数据库.表和数据行的操作 1. 基本概述 1.1 数据库就是用来存储数据的.早期是存在文件里面的操作起来效率低而且不是很安全. 1.2 ...

  4. 使用dom4j处理xml操作xml数据

    使用dom4j处理xml操作xml数据 示例代码: public class TestDom4j { public static void main(String[] args) { String x ...

  5. Open XML操作Excel导入数据

    项目中发现使用OleDb(using System.Data.OleDb)相关对象处理Excel导入功能,不是很稳定经常出问题,需要把这个问题解决掉.项目组提出使用OpenXML来处理Excel的导入 ...

  6. PHP XML操作的各种方法解析

    PHP提供了一整套的读取 XML文件的方法,很容易的就可以编写基于 XML的脚本程序.本章将要介绍 PHP与 XML的操作方法,并对几个常用的 XML类库做一些简要介绍. XML是一种流行的半结构化文 ...

  7. PowerShell 数组以及XML操作

    PowerShell基础 PowerShell数组操作 将字符串拆分成数据的操作 cls #原始字符串 $str = "abc,def,ghi,mon" #数据定义 #$StrAr ...

  8. T-Sql(五)xml操作

    t-sql中的xml操作在我们平时做项目的过程中用的很少,因为我们处理的数据量很少,除非一些用到xml的地方,t-sql中xml操作一般用在数据量很大,性能优化的地方,当然我在平时做项目的时候也是没用 ...

  9. XML格式示例 与 XML操作(读取)类封装

    header('Content-Type: text/xml'); <?xml version="1.0" encoding="utf-8" standa ...

随机推荐

  1. C# 委托的一些使用上的小技巧

    1.委托是一种数据类型,我们可以在任何定义类的地方定义委托,在任何声明类的地方声明委托 2.初始化委托有两种方式,代码如下: (1).像类一样初始化委托 public delegate void Sa ...

  2. CentOS和Ubuntu系统下安装 HttpFS (助推Hue部署搭建)

    不多说,直接上干货! 我的集群机器情况是 bigdatamaster(192.168.80.10).bigdataslave1(192.168.80.11)和bigdataslave2(192.168 ...

  3. 基于libcurl实现REST风格http/https的get和post

    c/c++开发中经常要用到http/https协议,直接使用socket工作量很大,要是使用socket实现https,那更不可思议,开源的c/c++的http客户端框架,libcurl是首选,而且也 ...

  4. Linux 命令学习之使用本地SecureCRT连接虚拟机上linux

    前提:保证你的虚拟机安装好了,本人使用的是 VMware. 首先在你的window上查看你的 ip地址 进入dos 窗口运行 ipconfig. 其次进入你的虚拟机,登录成功.运行 ifconfig ...

  5. Java面试题-Java容器

    一.Java容器分类 Java容器划分为两个概念Collection.Map Collection: 一个独立元素的序列,这些元素都服从一条或多条规则.List必须按照插入的顺序保存元素,不关心是否重 ...

  6. 第十四章、Linux 账号管理与 ACL 权限配置

    1. Linux 的账号与群组 1.1 使用者标识符: UID 与 GID 1.2 使用者账号:/etc/passwd 文件结构, /etc/shadow 文件结构 1.3 关于群组: /etc/gr ...

  7. Examples of GoF Design Patterns--摘录

    http://stackoverflow.com/questions/1673841/examples-of-gof-design-patterns You can find an overview ...

  8. JAVA练手--异常

    1. 基本的 public static void main(String[] args) { //1. try catch基本用法 { try{ int[] intA = new int[2]; i ...

  9. MYSQL登录错误:mysqladmin: connect to server at ‘localhost’ failed

    一.mysql登录错误 mysqladmin: connect to server at 'localhost' failed       error: 'Access denied for user ...

  10. 第8天:javascriptDOM小 案例、onmouseover 、onmouseout

    案例 为元素注册点击事件,弹出对话框 <input type="button" id="btn" value="开发分离"> & ...