★33°空間‰


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

                                 ----智力比知識重要,素質(zhì)比智力重要,覺悟比素質(zhì)更重要
          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;
          ???}
          ??}

          //調(diào)用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:如果系統(tǒng)正在運行,您得停止系統(tǒng),至于如何停止,也許可以使用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#文章
          主站蜘蛛池模板: 开阳县| 柞水县| 兴义市| 宜丰县| 外汇| 喀什市| 南皮县| 镇坪县| 丰原市| 墨脱县| 招远市| 体育| 资中县| 吉林省| 康乐县| 商城县| 云林县| 建阳市| 韩城市| 兴隆县| 秭归县| 台南市| 鸡泽县| 丰城市| 若尔盖县| 林西县| 高淳县| 临安市| 文昌市| 富源县| 镇康县| 青海省| 丹东市| 靖安县| 台安县| 申扎县| 新津县| 文成县| 大同市| 洪雅县| 浦东新区|