Пример #1
0
 /// <summary>
 /// 添加节点
 /// </summary>
 /// <param name="path"></param>
 /// <param name="mNode"></param>
 public static void Insert(string path, MaterialsNode mNode)
 {
     try
     {
         XmlDocument doc = new XmlDocument();
         doc.Load(path);
         XmlNode    root = doc.SelectSingleNode(mNode.RNode); //查找根节点
         XmlElement xe   = doc.CreateElement(mNode.PNode);    //创建一个父节点
         xe.SetAttribute(mNode.PNodeAttr, mNode.PNodeValue);  //为父节点添加属性
         if (mNode.CNode.Length > 0)
         {
             for (int i = 0; i < mNode.CNode.Length; i++)
             {
                 XmlElement xesub1 = doc.CreateElement(mNode.CNode[i]);
                 xesub1.InnerText = mNode.CNodeValue[i]; //设置文本节点
                 xe.AppendChild(xesub1);                 //添加到<book>节点中
             }
         }
         root.AppendChild(xe);
         doc.Save(path);
     }
     catch (Exception ex)
     {
         throw new Exception(ex.Message);
     }
 }
Пример #2
0
 public static void Delete(string path, MaterialsNode mNode)
 {
     try
     {
         XmlDocument       doc      = new XmlDocument();
         XmlReaderSettings settings = new XmlReaderSettings();
         settings.IgnoreComments = true;
         XmlReader reader = XmlReader.Create(path, settings);
         doc.Load(reader);
         //doc.Load(path);
         XmlNodeList nodeList = doc.SelectSingleNode(mNode.RNode).ChildNodes;
         foreach (XmlNode node in nodeList)
         {
             XmlElement xe = (XmlElement)node;
             if (xe.GetAttribute(mNode.PNodeAttr) == mNode.PNodeValue)
             {
                 xe.RemoveAttribute(mNode.PNodeAttr);//删除genre属性
             }
             else if (xe.GetAttribute(mNode.PNodeAttr) == mNode.PNodeNewValue)
             {
                 //xe.RemoveAll();//删除该节点的全部内容
                 node.ParentNode.RemoveChild(node);
             }
         }
         reader.Close();
         doc.Save(path);
     }
     catch (Exception ex)
     {
         throw new Exception(ex.Message);
     }
 }
Пример #3
0
        public static List <MaterialsData> GetXmlData(string path, MaterialsNode mNode)
        {
            List <MaterialsData> list = new List <MaterialsData>();

            try
            {
                XmlDocument       doc      = new XmlDocument();
                XmlReaderSettings settings = new XmlReaderSettings();
                settings.IgnoreComments = true;
                XmlReader reader = XmlReader.Create(path, settings);
                doc.Load(reader);

                XmlNodeList xnl = doc.SelectSingleNode(mNode.RNode).ChildNodes;
                foreach (XmlNode node in xnl)
                {
                    MaterialsData data = new MaterialsData();
                    XmlElement    xe   = (XmlElement)node;
                    XmlNodeList   xnf1 = xe.ChildNodes;
                    foreach (XmlNode xn2 in xnf1)
                    {
                        XmlElement x = (XmlElement)xn2;
                        if (x.Name == "Value")
                        {
                            data.Area = x.InnerText;
                        }
                        if (x.Name == "Path")
                        {
                            data.Path = x.InnerText;
                        }
                        if (x.Name == "Type")
                        {
                            data.Type = x.InnerText;
                        }
                        if (x.Name == "Depth")
                        {
                            data.Depth = x.InnerText;
                        }
                        //Console.WriteLine(xn2.InnerText);//显示子节点点文本
                    }
                    list.Add(data);
                }
                reader.Close();
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            return(list);
        }
Пример #4
0
        private void LoadData()
        {
            if (!File.Exists(imageConfig))
            {
                XmlHelper.CreateImageXml(imageConfig);
                PiEncryptHelper.EncFile(imageConfig);
            }
            if (PiEncryptHelper.IsFileEnc(imageConfig, ref nKeyID))
            {
                PiEncryptHelper.DecFile(imageConfig);
            }
            MaterialsNode mNode = new MaterialsNode();

            mNode.RNode = "Materials";
            List <MaterialsData> list = XmlHelper.GetXmlData(imageConfig, mNode);

            PiEncryptHelper.EncFile(imageConfig);
            BindDgvMain(list);
        }
Пример #5
0
        protected override void btnAdd_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            try
            {
                int index = gvMain.FocusedRowHandle;
                if (index <= -1)
                {
                    MessageBox.Show(@"请选择需要删除的型材!", @"错误", MessageBoxButtons.OK,
                                    MessageBoxIcon.Error);
                    return;
                }
                if (DialogResult.Yes ==
                    MessageBox.Show(@"是否删除选中的型材数据?", @"提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information))
                {
                    MaterialsNode mNode = new MaterialsNode();
                    mNode.RNode         = "Materials";
                    mNode.PNodeAttr     = "key";
                    mNode.PNodeNewValue = this.gvMain.GetFocusedRowCellValue("Area").ToString();
                    string filename = this.gvMain.GetFocusedRowCellValue("Path").ToString();

                    this.gvMain.DeleteRow(index);
                    if (PiEncryptHelper.IsFileEnc(imageConfig, ref nKeyID))
                    {
                        PiEncryptHelper.DecFile(imageConfig);
                    }
                    XmlHelper.Delete(imageConfig, mNode);
                    PiEncryptHelper.EncFile(imageConfig);
                    if (File.Exists(filename))
                    {
                        File.SetAttributes(filename, FileAttributes.Normal);

                        File.Delete(filename);
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, @"错误", MessageBoxButtons.OK,
                                MessageBoxIcon.Error);
            }
        }
Пример #6
0
        public static void Update(string path, MaterialsNode mNode)
        {
            try
            {
                XmlDocument       doc      = new XmlDocument();
                XmlReaderSettings settings = new XmlReaderSettings();
                settings.IgnoreComments = true;
                XmlReader reader = XmlReader.Create(path, settings);
                doc.Load(reader);
                XmlNodeList nodeList = doc.SelectSingleNode(mNode.RNode).ChildNodes;
                foreach (XmlNode node in nodeList)
                {
                    XmlElement xe = (XmlElement)node;
                    if (xe.GetAttribute(mNode.PNodeAttr) == mNode.PNodeValue)
                    {
                        xe.SetAttribute(mNode.PNodeAttr, mNode.PNodeNewValue);

                        XmlNodeList nls = xe.ChildNodes;
                        foreach (XmlNode n in nls)
                        {
                            XmlElement xl = (XmlElement)n;
                            for (int i = 0; i < mNode.CNode.Length; i++)
                            {
                                if (xl.Name == mNode.CNode[i])
                                {
                                    xl.InnerText = mNode.CNodeValue[i];
                                    break;
                                }
                            }
                        }
                        break;
                    }
                }
                reader.Close();
                doc.Save(path);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
Пример #7
0
        private void LoadProfileInfo()
        {
            if (!File.Exists(imageConfig))
            {
                XmlHelper.CreateImageXml(imageConfig);
                PiEncryptHelper.EncFile(imageConfig);
            }
            if (PiEncryptHelper.IsFileEnc(imageConfig, ref nKeyID))
            {
                PiEncryptHelper.DecFile(imageConfig);
            }
            MaterialsNode mNode = new MaterialsNode();

            mNode.RNode = "Materials";
            list        = XmlHelper.GetXmlData(imageConfig, mNode);

            PiEncryptHelper.EncFile(imageConfig);

            gcMain.DataSource = null;


            gcMain.DataSource = list;
        }
Пример #8
0
        private void btnStart_Click(object sender, EventArgs e)
        {
            AsyncWaitForm.Instance.AsyncShow("开始导入型材", "正在导入型材",
                                             delegate(AsyncWaitForm exfrm)
            {
                exfrm.SetMsgAndProgress("导入型材", 10);
                if (!File.Exists(imageConfig))
                {
                    XmlHelper.CreateImageXml(imageConfig);
                    PiEncryptHelper.EncFile(imageConfig);
                }

                if (PiEncryptHelper.IsFileEnc(imageConfig, ref nKeyID))
                {
                    ;
                }
                {
                    PiEncryptHelper.DecFile(imageConfig);
                }
                OpenFileDialog ofd = new OpenFileDialog();
                //ofd.Filter = @"图像文件(*.jpg;*.jpg;*.jpeg;*.gif;*.png)|*.jpg;*.jpeg;*.gif;*.png";
                ofd.Filter           = @"图像文件(*.png)|*.png";
                ofd.Multiselect      = true;
                ofd.Title            = @"请选择文件";
                ofd.RestoreDirectory = true;

                MaterialsNode mNode = new MaterialsNode();
                mNode.CNode         = new string[4];
                mNode.CNodeValue    = new string[4];
                string path         = AppDomain.CurrentDomain.BaseDirectory + "MaterialsImg\\" + lueType.Text + "\\";

                if (!Directory.Exists(path))
                {
                    Directory.CreateDirectory(path);
                }



                if (ofd.ShowDialog() == DialogResult.OK)
                {
                    foreach (var item in ofd.SafeFileNames)
                    {
                        string filename = path + item.ToLower();
                        if (File.Exists(filename))
                        {
                            MessageBox.Show(string.Format("【{0}】型材已经存在!", item.ToLower().Replace(".png", "")));
                            return;
                        }
                    }


                    for (int i = 0; i < ofd.FileNames.Length; i++)
                    {
                        string filePath = path + ofd.SafeFileNames[i].ToLower();
                        string truePath = "MaterialsImg\\" + lueType.Text + "\\" + ofd.SafeFileNames[i].ToLower();
                        if (File.Exists(filePath))
                        {
                            MessageBox.Show(string.Format("【{0}】型材已经存在!", ofd.SafeFileNames[i].ToLower().Replace(".png", "")));
                            return;
                        }
                        if (File.Exists(filePath))
                        {
                            XmlHelper.Update(imageConfig, "Image//Key_" + ofd.SafeFileNames[i].ToLower().Replace(".png", ""), "Path", filePath);
                        }
                        else
                        {
                            mNode.RNode         = "Materials";
                            mNode.PNode         = "Image";
                            mNode.PNodeAttr     = "key";
                            mNode.PNodeValue    = ofd.SafeFileNames[i].ToLower().Replace(".png", "");
                            mNode.CNode[0]      = "Type";
                            mNode.CNodeValue[0] = lueType.Text;
                            mNode.CNode[1]      = "Value";
                            mNode.CNodeValue[1] = ofd.SafeFileNames[i].ToLower().Replace(".png", "");
                            mNode.CNode[2]      = "Path";
                            mNode.CNodeValue[2] = truePath;
                            mNode.CNode[3]      = "Depth";
                            mNode.CNodeValue[3] = txtDepth.Text;
                            //XmlHelper.Insert(xmlPath, "Image", "Key_" + ofd.SafeFileNames[i].Replace(".png", ""), "Path",
                            //    filePath);
                            XmlHelper.Insert(imageConfig, mNode);
                        }
                        File.Copy(ofd.FileNames[i].ToLower(), filePath, true);
                    }

                    //XmlHelper.Insert();
                }
                exfrm.SetMsgAndProgress("导入完成", 90);
                DialogResult = DialogResult.OK;
                PiEncryptHelper.EncFile(imageConfig);
            }, delegate
            {
                AsyncWaitForm.Instance.SetMsgAndProgress(100);
            });
        }