一段服务器端配置文件,一段客户端配置文件,一段下载代码。
RemoteXmlFile.xml
<?xml version="1.0" encoding="utf-8"?> <configuration> <Item key="client" value="20121228" content="tlnews001,tlnews002,tlnews003" size="3" /> <Item key="renbao" value="20121228" content="a2.pdf,a1.pdf,a3.pdf,a4.pdf,a5.pdf,a6.pdf,a7.pdf,a8.pdf" size="4777360" /> <Item key="cenbao" value="20121228" content="a1.pdf,a2.pdf,a4.pdf,a6.pdf,a3.pdf,a5.pdf,a8.pdf,a7.pdf,a10.pdf,a9.pdf,a11.pdf" size="5542552" /> <Item key="button" value="20121124 10:59:52" content="" size="" /> <Item key="banner" value="20121124 10:55:40" content="" size="" /> <Item key="web" value="20121218 10:16:40" content="index.html" size="2116" /> <Item key="pb" value="20121124 10:56:21" content="" size="" /> </configuration>
AnalysisXml.cs
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Xml; namespace comback { class AnalysisXml { //更新本地配置文件节点值 public void UpdateLocalXml(string xmlPath, string updateKey, string updateValue, string updateContent, string updateSize) { XmlDocument xDoc = new XmlDocument(); try { xDoc.Load(xmlPath); foreach (XmlNode node in xDoc.DocumentElement.ChildNodes) { string key = node.Attributes["key"].Value; if (key == updateKey) { node.Attributes["value"].Value = updateValue; node.Attributes["content"].Value = updateContent; node.Attributes["size"].Value = updateSize; xDoc.Save(xmlPath); break; } } } catch (Exception ee) { System.Windows.Forms.MessageBox.Show("在AnalysisXml类中操作UpdateLocalXml时异常:" + ee.Message); } } } }
ClientXmlFile.xml
<?xml version="1.0" encoding="utf-8"?> <configuration> <Item key="renbao" value="20121219" /> <Item key="cenbao" value="20121219" /> <Item key="button" value="20121124 10:59:52" /> <Item key="banner" value="20121124 10:55:40" /> <Item key="web" value="20121218 10:16:40" /> <Item key="pb" value="20121124 10:56:21" /> </configuration>
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Xml; using System.Windows.Forms; namespace ClientIIS { //解析xml配置文件 class AnalysisXml { //获取app.config值 public string GetValue(string appKey) { XmlDocument xDoc = new XmlDocument(); try { xDoc.Load(Application.StartupPath + "\\App.config"); XmlNode xNode; XmlElement xElem; xNode = xDoc.SelectSingleNode("//appSettings"); xElem = (XmlElement)xNode.SelectSingleNode("//add[@key='" + appKey + "']"); if (xElem != null) return xElem.GetAttribute("value"); else return ""; } catch (Exception ee) { LogManager.WriteLog(LogFile.XmlError, "", "在AnalysisXml类中操作GetValue时异常:" + ee.Message); } return ""; } //修改远程文件(.ini) public void UpdateRemoteFile(string xmlPath, string updateKey, string updateValue) { XmlDocument xDoc = new XmlDocument(); try { xDoc.Load(xmlPath); foreach (XmlNode node in xDoc.DocumentElement.ChildNodes) { string key = node.Attributes["key"].Value; if (key == updateKey) { node.Attributes["value"].Value = updateValue; xDoc.Save(xmlPath); MessageBox.Show("修改成功!"); break; } } } catch (Exception ee) { LogManager.WriteLog(LogFile.XmlError, "", "在AnalysisXml类中操作UpdateLocalXml时异常:" + ee.Message); } } List<ClientFileInfo> remoteList = new List<ClientFileInfo>(); //获取远程配置文件信息 public List<ClientFileInfo> GetRemoteXmlValue(string xmlPath) { XmlDocument xDoc = new XmlDocument(); try { xDoc.Load(xmlPath); foreach (XmlNode node in xDoc.DocumentElement.ChildNodes) { string key = node.Attributes["key"].Value; string value = node.Attributes["value"].Value; string content = node.Attributes["content"].Value; string size = node.Attributes["size"].Value; //我想到了一个温柔的你,可以用你来抚平创伤 if (string.IsNullOrEmpty(content) || string.IsNullOrEmpty(size)) { continue; } ClientFileInfo file = new ClientFileInfo(key, value, content, size); remoteList.Add(file); } } catch (Exception ee) { LogManager.WriteLog(LogFile.XmlError, "", "在AnalysisXml类中操作GetRemoteXmlValue时异常:" + ee.Message); } return remoteList; } //获取本地配置文件信息 List<ClientFileInfo> localList = new List<ClientFileInfo>(); public List<ClientFileInfo> GetLocalXmlValue(string xmlPath) { XmlDocument xDoc = new XmlDocument(); try { xDoc.Load(xmlPath); foreach (XmlNode node in xDoc.DocumentElement.ChildNodes) { string key = node.Attributes["key"].Value; string value = node.Attributes["value"].Value; ClientFileInfo file = new ClientFileInfo(key, value); localList.Add(file); } } catch (Exception ee) { LogManager.WriteLog(LogFile.XmlError, "", "在AnalysisXml类中操作GetLocalXmlValue时异常:" + ee.Message); } return localList; } //更新本地配置文件节点值 public void UpdateLocalXml(string xmlPath, string updateKey,string updateValue) { XmlDocument xDoc = new XmlDocument(); try { xDoc.Load(xmlPath); foreach (XmlNode node in xDoc.DocumentElement.ChildNodes) { string key = node.Attributes["key"].Value; if (key == updateKey) { node.Attributes["value"].Value = updateValue; xDoc.Save(xmlPath); break; } } } catch (Exception ee) { LogManager.WriteLog(LogFile.XmlError, "", "在AnalysisXml类中操作UpdateLocalXml时异常:" + ee.Message); } } } }
private void DownloadFile() { try { if (updateFileList != null && updateFileList.Count > 0) { for (int i = 0; i < updateFileList.Count; i++) { string downFile = this.updateFileList[i]; string saveFile = this.saveFileList[i]; clientDownload = new WebClient(); if (clientDownload.IsBusy) { clientDownload.CancelAsync(); } clientDownload.DownloadFileAsync(new Uri(downFile), saveFile, saveFile); clientDownload.DownloadFileCompleted += new AsyncCompletedEventHandler(client_DownloadFileCompleted); } } } catch(Exception ee) { LogManager.WriteLog(LogFile.OtherError, "", "在程序ClientIIS的ClientIISForm类中操作DownloadFile时异常:" + ee.Message); } }
版权声明:本文为博主原创文章,未经博主允许不得转载。