using PCScreenSavers.Common; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Xml; namespace PCScreenSavers.Business { class Class_Config { private Class_Log log = new Class_Log(); private App app = ((App)System.Windows.Application.Current); public void WriteToProgramConfig() { try { string fpath = Directory.GetCurrentDirectory() + "\\config\\"; if (!Directory.Exists(fpath)) { DirectoryInfo directoryInfo = new DirectoryInfo(fpath); directoryInfo.Create(); } string strConfigxml = AppDomain.CurrentDomain.BaseDirectory + "config//Program.xml"; if (File.Exists(strConfigxml) == true) { XmlDocument doc = new XmlDocument(); doc.Load(strConfigxml); XmlNode xnFirst = doc.SelectSingleNode("Config"); XmlNode xnSecond = xnFirst.SelectSingleNode("ProgramInfo"); if (xnSecond == null) { log.WriteLogFile("配置文件错误-未发现ProgramInfo标签"); return; } else { XmlNode xnnode = xnSecond.SelectSingleNode("CurrentPlayIndex"); if (xnnode == null) { XmlElement Node = doc.CreateElement("CurrentPlayIndex"); Node.InnerText = app.currentIndex.ToString(); xnSecond.AppendChild(Node); } else { xnSecond.SelectSingleNode("CurrentPlayIndex").InnerText = app.currentIndex.ToString(); } xnnode = xnSecond.SelectSingleNode("PlayTime"); if (xnnode == null) { XmlElement Node = doc.CreateElement("PlayTime"); Node.InnerText = app.PlayTime.ToString(); xnSecond.AppendChild(Node); } else { xnSecond.SelectSingleNode("PlayTime").InnerText = app.PlayTime.ToString(); } } doc.Save(strConfigxml); } else { XmlDocument doc = new XmlDocument(); // 创建dom对象 XmlDeclaration xmldecl; xmldecl = doc.CreateXmlDeclaration("1.0", "gb2312", null); doc.AppendChild(xmldecl); XmlElement root = doc.CreateElement("Config"); // 创建根节点 doc.AppendChild(root); // 加入到xml document XmlElement FillItem; // 创建FillItem元素 FillItem = doc.CreateElement("ProgramInfo"); root.AppendChild(FillItem); // 添加到xml document XmlElement Node = doc.CreateElement("CurrentPlayIndex"); Node.InnerText = app.currentIndex.ToString(); FillItem.AppendChild(Node); Node = doc.CreateElement("PlayTime"); Node.InnerText = app.PlayTime.ToString(); FillItem.AppendChild(Node); MemoryStream stream = new MemoryStream(); XmlTextWriter writer = new XmlTextWriter(stream, null); writer.Formatting = System.Xml.Formatting.Indented; doc.Save(writer); StreamReader sr = new StreamReader(stream, Encoding.UTF8); stream.Position = 0; string XMLString = sr.ReadToEnd(); doc.Save(@"config\\Program.xml"); // 保存文件 sr.Close(); stream.Close(); } } catch (Exception e) { log.WriteLogFile("WriteToProgramConfig:[" + e.ToString() + "]"); } } /// /// /加载配置 /// public void LoadProgramConfig() { try { string fpath = Directory.GetCurrentDirectory() + "\\config\\"; if (!Directory.Exists(fpath)) { DirectoryInfo directoryInfo = new DirectoryInfo(fpath); directoryInfo.Create(); } string strConfigxml = AppDomain.CurrentDomain.BaseDirectory + "config//Program.xml"; if (File.Exists(strConfigxml) == true) { XmlDocument doc = new XmlDocument(); doc.Load(strConfigxml); XmlNode xnFirst = doc.SelectSingleNode("Config"); XmlNode xnSecond = xnFirst.SelectSingleNode("ProgramInfo"); if (xnSecond == null) { log.WriteLogFile("配置文件错误-未发现ProgramInfo标签"); return; } else { app.currentIndex =Convert.ToInt32( xnSecond.SelectSingleNode("CurrentPlayIndex").InnerText); app.currentIndex = app.currentIndex > 0 ? app.currentIndex - 1 : 0; app.PlayTime =Convert.ToInt32( xnSecond.SelectSingleNode("PlayTime").InnerText); } } else { XmlDocument doc = new XmlDocument(); // 创建dom对象 XmlDeclaration xmldecl; xmldecl = doc.CreateXmlDeclaration("1.0", "gb2312", null); doc.AppendChild(xmldecl); XmlElement root = doc.CreateElement("Config"); // 创建根节点 doc.AppendChild(root); // 加入到xml document XmlElement FillItem; // 创建FillItem元素 FillItem = doc.CreateElement("ProgramInfo"); root.AppendChild(FillItem); // 添加到xml document XmlElement Node = doc.CreateElement("CurrentPlayIndex"); Node.InnerText = app.currentIndex.ToString(); FillItem.AppendChild(Node); Node = doc.CreateElement("PlayTime"); Node.InnerText = app.PlayTime.ToString(); FillItem.AppendChild(Node); MemoryStream stream = new MemoryStream(); XmlTextWriter writer = new XmlTextWriter(stream, null); writer.Formatting = System.Xml.Formatting.Indented; doc.Save(writer); StreamReader sr = new StreamReader(stream, Encoding.UTF8); stream.Position = 0; string XMLString = sr.ReadToEnd(); doc.Save(@"config\\Program.xml"); // 保存文件 sr.Close(); stream.Close(); } } catch (Exception e) { log.WriteLogFile("LoadProgramConfig:[" + e.ToString() + "]"); } } } }