Browse Source

xml缓存登录信息

shim 8 years ago
parent
commit
17955d5a94
2 changed files with 110 additions and 0 deletions
  1. 20 0
      UAS-MES/Program.cs
  2. 90 0
      UAS-MES/PublicMethod/BaseUtil.cs

+ 20 - 0
UAS-MES/Program.cs

@@ -3,6 +3,7 @@ using System.IO;
 using System.Security.Principal;
 using System.Text;
 using System.Windows.Forms;
+using System.Xml;
 using UAS_MES.PublicMethod;
 
 namespace UAS_MES
@@ -41,6 +42,25 @@ namespace UAS_MES
                     Directory.CreateDirectory(sysdisc + @":\Log");
                 FileStream fs = new FileStream(sysdisc + @":\Log\" + DateTime.Now.ToString("yyyy-MM-dd") + ".txt", FileMode.OpenOrCreate, FileAccess.ReadWrite);
                 fs.Close();
+                //创建存储登录信息的文件
+                if (!Directory.Exists(sysdisc + @":\Log\cacheInfo"))
+                    Directory.CreateDirectory(sysdisc + @":\Log\cacheInfo");
+                FileStream fcaches = new FileStream(sysdisc + @":\Log\cacheInfo\cacheInfo.xml", FileMode.OpenOrCreate, FileAccess.ReadWrite);
+                fcaches.Close();
+                //判断是否xml文件大小为0
+                FileInfo info = new FileInfo(sysdisc + @":\Log\cacheInfo\cacheInfo.xml");
+                if (info.Length==0)
+                {
+                    XmlDocument doc = new XmlDocument();
+                    //创建类型声明节点  
+                    XmlNode node = doc.CreateXmlDeclaration("1.0", "utf-8", "");
+                    doc.AppendChild(node);
+                    //创建根节点  
+                    XmlElement xeRoot = doc.CreateElement("cacheInfo");
+                    doc.AppendChild(xeRoot);
+                    doc.Save(Environment.GetEnvironmentVariable("windir").Substring(0, 1) + @":\Log\cacheInfo\cacheInfo.xml");
+                }
+                //创建记录打印进程的文件
                 FileStream fas = new FileStream(Directory.GetCurrentDirectory() + @"\" + "lblprocess" + ".txt", FileMode.OpenOrCreate, FileAccess.ReadWrite);
                 fas.Close();
                 if (principal.IsInRole(WindowsBuiltInRole.Administrator))

+ 90 - 0
UAS-MES/PublicMethod/BaseUtil.cs

@@ -13,6 +13,7 @@ using System.Text;
 using System.Text.RegularExpressions;
 using System.Windows.Forms;
 using System.Windows.Forms.DataVisualization.Charting;
+using System.Xml;
 using UAS_MES.CustomControl.DataGrid_View;
 using UAS_MES.CustomControl.GroupBoxWithBorder;
 using UAS_MES.CustomControl.TextBoxWithIcon;
@@ -984,5 +985,94 @@ namespace UAS_MES.PublicMethod
             sw.Close();
             fs.Close();
         }
+
+        public static Object GetCacheData(string ParamName) {
+            Object o = null;
+            //根据地址读取xml文件
+            XmlDocument doc = new XmlDocument();
+            XmlReaderSettings settings = new XmlReaderSettings();
+            //忽略文档里面的注释
+            settings.IgnoreComments = true;
+            XmlReader reader = XmlReader.Create(Environment.GetEnvironmentVariable("windir").Substring(0, 1) + @":\Log\cacheInfo\cacheInfo.xml", settings);
+            doc.Load(reader);
+            //先得到根节点
+            XmlNode rootNode = doc.SelectSingleNode("cacheInfo");
+            //再由根节点去找制定的节点
+            XmlNodeList nodeList = rootNode.ChildNodes;
+            foreach (XmlNode node in nodeList)
+            {
+                //找到了这个节点名字
+                if (node.Name==ParamName)
+                {
+                    //返回节点的内容
+                    switch (((XmlElement)node).GetAttribute("Type"))
+                    {
+                        case "System.String":
+                            o = node.InnerText;
+                            break;
+                        case "System.Int32":
+                            o = int.Parse(node.InnerText);
+                            break;
+                        case "System.Boolean":
+                            o = node.InnerText == "True" ? true : false;
+                            break;
+                        default:
+                            break;
+                    }
+                    //o = ;
+                    break;
+                }
+            }
+            //关闭reader
+            reader.Close();
+            if (o == null)
+            {
+                return "";
+            }
+            else
+            {
+                return o;
+            }
+        }
+
+        public static void SetCacheData(string ParamName,object Value) {
+            //根据地址读取xml文件
+            XmlDocument doc = new XmlDocument();
+            XmlReaderSettings settings = new XmlReaderSettings();
+            //忽略文档里面的注释
+            settings.IgnoreComments = true;
+            XmlReader reader = XmlReader.Create(Environment.GetEnvironmentVariable("windir").Substring(0, 1) + @":\Log\cacheInfo\cacheInfo.xml", settings);
+            doc.Load(reader);
+            //先得到根节点
+            XmlNode rootNode = doc.SelectSingleNode("cacheInfo");
+            //再由根节点去找制定的节点
+            XmlNodeList nodeList = rootNode.ChildNodes;
+            bool flag = false;
+            foreach (XmlNode node in nodeList)
+            {
+                //找到了这个节点名字
+                if (node.Name == ParamName)
+                {
+                    //就直接赋值
+                    node.InnerText = Value.ToString();
+                    flag = true;
+                }
+            }
+            //如果没有该节点,就创建节点保存结果
+            if (!flag)
+            {
+                //创建节点
+                XmlElement newNode = doc.CreateElement(ParamName);
+                XmlAttribute attr = doc.CreateAttribute("Type");
+                attr.InnerText = Value.GetType().ToString();
+                newNode.InnerText = Value.ToString();
+                newNode.SetAttributeNode(attr);
+                //讲新建的节点挂到根节点上
+                rootNode.AppendChild(newNode);
+            }
+            //关闭Reader
+            reader.Close();
+            doc.Save(Environment.GetEnvironmentVariable("windir").Substring(0, 1) + @":\Log\cacheInfo\cacheInfo.xml");
+        }
     }
 }