★33°空間‰


                                 ----★七彩服飾  【最潮拜☆日單精品】【Esprit】【Hotwind】滿150包郵-女裝-流行女裝    www.7color.hb.cn

                                 ----智力比知識重要,素質比智力重要,覺悟比素質更重要
          posts - 110,comments - 35,trackbacks - 0

          //這是一個webservice

          private AppUpdate.UpdateServ? UpdateSvr;


          ??private void button1_Click(object sender, System.EventArgs e)
          ??{
          ???
          ???if(LinkWebServices()==true)
          ???{
          ????this.label1.Text="連接服務器....... PASS";
          ????
          ????if(CheckVer()==true)
          ????{
          ?????this.label2.Text="檢查最新版本并下載.......PASS";
          ??????????????????
          ????}
          ????else
          ????{
          ?????this.label2.Text="檢查最新版本并下載.......FAIL";
          ????}
          ???}
          ???else
          ???{
          ????this.label1.Text="連接服務器.......FAIL";
          ???}
          ??}

          //這是用來與升級服務器建立連接
          ??private bool LinkWebServices()
          ??{
          ???try
          ???{
          ????UpdateSvr=new UpdateServ();
          ????return true;
          ???}
          ???catch
          ???{
          ????return false;
          ???}
          ??}

          //調用webservice用來檢查是不是有最新的版本
          ??private bool CheckVer()
          ??{
          ???string path =Application.StartupPath;
          ???try
          ???{
          ????VersionCheck(path);
          ????return true;
          ???}
          ???catch(Exception ex)
          ???{
          ????MessageBox.Show(ex.ToString());
          ????return false;
          ???}
          ??}

          ??private void VersionCheck(string desPath)
          ??{
          ???try
          ???{
          ????#region 查看文件和目錄
          ????if(!desPath.EndsWith(@"\"))
          ?????desPath += @"\";

          ????if(!System.IO.Directory.Exists(desPath))
          ????{
          ?????System.IO.Directory.CreateDirectory(desPath);
          ????}

          ????string tempPath = desPath + @"tempDesPathCache\";

          ????if(System.IO.Directory.Exists(tempPath))
          ????{
          ?????System.IO.Directory.Delete(tempPath,true);
          ?????System.IO.Directory.CreateDirectory(tempPath);
          ????}
          ????else
          ?????System.IO.Directory.CreateDirectory(tempPath);

          ????if(!System.IO.File.Exists(desPath + "UpdateConfig.xml"))
          ????{
          ?????System.Xml.XmlDocument updateConfig = new System.Xml.XmlDocument();
          ?????updateConfig.LoadXml(@"<root></root>");
          ?????updateConfig.Save(desPath + "UpdateConfig.xml");
          ????}
          ????#endregion

          ???
          ????System.Xml.XmlDocument serverXmlDoc = UpdateSvr.AppUpdateVertion();
          ????System.Xml.XmlDocument localXmlDoc = new System.Xml.XmlDocument();
          ????localXmlDoc.Load(desPath + "UpdateConfig.xml");
          ????bool newVersionExist = false;
          ????bool moduleExist = false;
          ????System.Xml.XmlNode serverNode0 = serverXmlDoc.ChildNodes[0];
          ????System.Xml.XmlNode localNode0 = localXmlDoc.ChildNodes[0];
          ????foreach(System.Xml.XmlNode serverNode in serverNode0)
          ????{
          ?????moduleExist = false;
          ?????foreach(System.Xml.XmlNode localNode in localNode0)
          ?????{
          ??????//找到對應模塊
          ??????if(localNode.ChildNodes[0].InnerText == serverNode.ChildNodes[0].InnerText)
          ??????{
          ???????moduleExist = true;
          ???????//版本號判斷
          ???????if(localNode.ChildNodes[1].InnerText.CompareTo(serverNode.ChildNodes[1].InnerText) < 0)
          ???????{
          ????????newVersionExist = true;
          ????????if(System.Configuration.ConfigurationSettings.AppSettings["NetStyle"].ToString()=="internet")
          ????????{
          ?????????DownloadFile(serverNode.ChildNodes[2].InnerText,tempPath + serverNode.ChildNodes[0].InnerText);
          ????????}
          ????????else
          ????????{
          ?????????DownloadFile(serverNode.ChildNodes[3].InnerText,tempPath + serverNode.ChildNodes[0].InnerText);
          ????????}
          ???????}
          ???????break;
          ??????}
          ?????}
          ?????//沒找到對應模塊
          ?????if(false == moduleExist)
          ?????{
          ??????
          ??????if(System.Configuration.ConfigurationSettings.AppSettings["NetStyle"].ToString()=="internet")
          ??????{
          ???????DownloadFile(serverNode.ChildNodes[2].InnerText,tempPath + serverNode.ChildNodes[0].InnerText);
          ??????}
          ??????else
          ??????{
          ???????DownloadFile(serverNode.ChildNodes[3].InnerText,tempPath + serverNode.ChildNodes[0].InnerText);
          ??????}
          ?????}
          ????}
          ????//寫入新UpdateConfig.xml升級完畢后替換
          ????if(newVersionExist)
          ????{
          ?????serverXmlDoc.Save(tempPath + "UpdateConfig.xml");
          ?????if(DialogResult.Yes == MessageBox.Show("有新版本,是否更新?","提示",MessageBoxButtons.YesNo))
          ?????{
          ??????string[] dirs = System.IO.Directory.GetFiles(tempPath, "*.*");
          ??????string fileName;
          ??????foreach (string dir in dirs)
          ??????{
          ???????fileName = ((dir.Split(Convert.ToChar(@"\")))[dir.Split(Convert.ToChar(@"\")).Length - 1]);
          ???????if(System.IO.File.Exists(desPath + fileName))
          ???????{
          ????????//TODO:可以支持備份以前版本
          ????????System.IO.File.Delete(desPath + fileName);
          ???????}
          ???????//TODO:如果系統正在運行,您得停止系統,至于如何停止,也許可以使用System.Diagnostics.Process
          ???????System.IO.File.Move(dir,desPath + fileName);
          ??????}
          ??????MessageBox.Show("升級完畢");
          ?????}
          ?????else
          ?????{
          ??????//TODO:可以支持重新提示升級
          ?????}
          ????}
          ???}
          ???catch(Exception ex)
          ???{
          ????throw new Exception("升級失敗,原因是:" + ex.Message,ex);
          ???}
          ??}

          //下載最新的文件

          ??private void DownloadFile(string source,string fileName)
          ??{
          ???try
          ???{
          ????System.Net.WebClient myWebClient = new System.Net.WebClient();
          ????myWebClient.DownloadFile(source,fileName);
          ???}
          ???catch(Exception ex)
          ???{
          ????throw new Exception("下載失敗,原因是:" + ex.Message,ex);
          ???}
          ??}

          posted on 2006-09-20 12:51 圣域飛俠 閱讀(226) 評論(0)  編輯  收藏 所屬分類: C#文章
          主站蜘蛛池模板: 崇左市| 揭阳市| 闽侯县| 五寨县| 乐亭县| 赣榆县| 讷河市| 论坛| 瑞丽市| 三原县| 蒲江县| 获嘉县| 东乌| 彭州市| 准格尔旗| 城市| 潜江市| 棋牌| 卢湾区| 中超| 扶余县| 广东省| 清镇市| 行唐县| 吉林省| 遂川县| 萨嘎县| 伊宁县| 运城市| 乌兰浩特市| 得荣县| 沙坪坝区| 台中县| 富蕴县| 榆中县| 弥勒县| 诸城市| 德清县| 温宿县| 丰顺县| 岳西县|