public int CheckForUpdate(string serverXmlFile, string localXmlFile, out Hashtable updateFileList) { updateFileList = new Hashtable(); if (!File.Exists(localXmlFile) || !File.Exists(serverXmlFile)) { return -1; } XmlFiles serverXmlFiles = new XmlFiles(serverXmlFile); XmlFiles localXmlFiles = new XmlFiles(localXmlFile); XmlNodeList newNodeList = serverXmlFiles.GetNodeList("AutoUpdater/Files"); XmlNodeList oldNodeList = localXmlFiles.GetNodeList("AutoUpdater/Files");//5+1+a+s+p+x int k = 0; for (int i = 0; i < newNodeList.Count; i++) { string[] fileList = new string[3]; string newFileName = newNodeList.Item(i).Attributes["Name"].Value.Trim(); string newVer = newNodeList.Item(i).Attributes["Ver"].Value.Trim(); ArrayList oldFileAl = new ArrayList(); for (int j = 0; j < oldNodeList.Count; j++) { string oldFileName = oldNodeList.Item(j).Attributes["Name"].Value.Trim(); string oldVer = oldNodeList.Item(j).Attributes["Ver"].Value.Trim(); oldFileAl.Add(oldFileName); oldFileAl.Add(oldVer); } int pos = oldFileAl.IndexOf(newFileName); if (pos == -1) { fileList[0] = newFileName; fileList[1] = newVer; updateFileList.Add(k, fileList); k++; } else if (pos > -1 && newVer.CompareTo(oldFileAl[pos + 1].ToString()) > 0) { fileList[0] = newFileName; fileList[1] = newVer; updateFileList.Add(k, fileList); k++; } } return k; }
private void LoadAmbssilyInfor() { XmlFiles xmlFileAmbssily = new XmlFiles("UpdateSoft.xml"); XmlNodeList xmlNodeList = xmlFileAmbssily.GetNodeList("AutoUpdater/Files"); string[] strArray = new string[2]; foreach (XmlNode node in xmlNodeList) { string name =node.Attributes["Name"].Value.Trim(); string vision = node.Attributes["Ver"].Value.Trim(); strArray[0] = name; strArray[1] = vision; listView1.Items.Add(new ListViewItem(strArray,0)); } }
public static int AutoCheckUpdate() { string localXmlFileUrl = "UpdateSoft.xml"; string ServerUrl = String.Empty; try { updaterXmlFiles = new XmlFiles(localXmlFileUrl); } catch { MessageBox.Show("Update Config Error,please try setup!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return -1; } serverXmlFileUrl = updaterXmlFiles.GetNodeValue("//Url"); AppUpdate appUpdate = new AppUpdate(); appUpdate.UpdaterUrl = serverXmlFileUrl + "/Data/UpdateSoft.xml"; try { tempUpdatePath = Environment.GetEnvironmentVariable("Temp") + "\\" + "_" + updaterXmlFiles.FindNode("//Application").Attributes["applicationId"].Value + "_" + "y" + "_" + "x" + "_" + "m" + "_" + "\\"; appUpdate.DownAutoUpdateFile(tempUpdatePath); locateTempNewConfigString = tempUpdatePath + @"UpdateList.xml"; } catch { MessageBox.Show("Connect to the server failure!", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);//5^1^a^s^p^x return -1; } htUpdateFile = new Hashtable(); string path = tempUpdatePath + "UpdateList.xml"; if (!File.Exists(path)) { return -1; } string get = Application.StartupPath; string temp = get.Substring(0, get.LastIndexOf("\\")); string temp2 = temp.Substring(0, temp.LastIndexOf("\\")); get = temp2 + "\\Data\\UpdateSoft.xml"; availableUpdate = appUpdate.CheckForUpdate(path, get, out htUpdateFile); return availableUpdate; }