Example #1
0
 /// <summary>
 /// 检查是否有新版本
 /// 以更新日志中最后一个版本号为准
 /// 如果出错则不更新
 /// Author:Johnny
 /// Time:2013-08-24
 /// EditTime:2014-08-18
 /// LastEditTime:2016-07-10
 /// </summary>
 /// <param name="remoteHost">IP地址或域名</param>
 /// <param name="shareName">共享名</param>
 /// <param name="userName">帐号</param>
 /// <param name="passWord">密码</param>
 /// <param name="exVersion">版本号前的提示字符</param>
 /// <returns></returns>
 public bool CheckUpdate(string remoteHost, string shareName, string userName, string passWord, string exVersion)
 {
     try
     {
         FileUpDownHelper.Connect(remoteHost, shareName, userName, passWord);
         string newVersion = XMLHelper.GetItemValue(_configPath, "version", _updateVersion);
         if (!FileHelper.IsExistFile(_updateLogPath))
         {
             FileHelper.CreateFile(_updateLogPath);
         }
         var    updateInfo   = FileHelper.GetContent(_updateLogPath);
         string localVersion = "0";
         for (int i = updateInfo.Length - 1; i >= 0; i--)
         {
             if (updateInfo[i].IndexOf(exVersion) != -1)
             {
                 localVersion = updateInfo[i].Replace(exVersion, "");
                 break;
             }
         }
         if (newVersion != localVersion)
         {
             int versionCount = XMLHelper.GetItemCount(_configPath, "version");
             while (newVersion != localVersion && _updateVersion + 1 < versionCount)
             {
                 newVersion = XMLHelper.GetItemValue(_configPath, "version", ++_updateVersion);
             }
             if (localVersion != "0")
             {
                 _updateVersion--;
             }
             return(true);
         }
         else
         {
             return(false);
         }
     }
     catch
     {
         return(false);
     }
 }
Example #2
0
 /// <summary>
 /// 更新文件
 /// Author:Johnny Wong
 /// Time:2013-08-26
 /// LastEditTime:2016-07-15
 /// <param name="remoteHost">IP地址或域名</param>
 /// <param name="shareName">共享名</param>
 /// <param name="userName">帐号</param>
 /// <param name="passWord">密码</param>
 /// <param name="bgw">BackgroundWorker实体</param>
 /// </summary>
 /// <returns></returns>
 public bool UpdateFile(string remoteHost, string shareName, string userName, string passWord, BackgroundWorker bgw)
 {
     try
     {
         FileUpDownHelper.Connect(remoteHost, shareName, userName, passWord);
         if (FileHelper.IsExistDirectory(_winformPath + "Temp\\"))
         {
             FileHelper.DeleteFolder(_winformPath + "Temp\\");
         }
         FileHelper.CreateFolder(_winformPath + "Temp\\");
         var    fl        = XMLHelper.GetIts(_configPath, _updateVersion);
         bool   isS       = true;
         string localPath = "";
         string newFile   = "";
         string path      = "";
         string operate   = "";
         int    time      = 0;
         int    all       = fl.Length + 4;
         foreach (string ss in fl)
         {
             if (isS)
             {
                 if (!string.IsNullOrWhiteSpace(ss))
                 {
                     operate = ss.Substring(ss.IndexOf("@") + 1);
                     if (operate == "add")
                     {
                         path = _winformPath + "Temp\\" + ss.Substring(0, ss.IndexOf("@"));
                         FileHelper.CreateFolder(path);
                     }
                     if (operate == "remove")
                     {
                         path = _winformPath + ss.Substring(0, ss.IndexOf("@"));
                         FileHelper.DeleteFolder(path);
                     }
                 }
                 isS = false;
             }
             else
             {
                 if (!string.IsNullOrWhiteSpace(ss))
                 {
                     localPath = (_winformPath + "Temp\\" + ss.Substring(0, ss.IndexOf("@"))).Replace("\\", "/");
                     newFile   = "\\\\" + _serverAddress + "\\" + ss.Substring(ss.IndexOf("@") + 1);
                     if (newFile == "\\\\" + _serverAddress + "\\" + "remove")
                     {
                         FileHelper.DeleteFile(_winformPath + "\\" + ss.Substring(0, ss.IndexOf("@")));
                     }
                     else
                     {
                         FileHelper.CopyFile(newFile, localPath);
                     }
                 }
                 isS = true;
             }
             time += 1;
             bgw.ReportProgress(Convert.ToInt32(Convert.ToDouble(time) / Convert.ToDouble(all) * 100));
         }
         FileHelper.CopyFolder(_winformPath + "Temp\\", _winformPath);
         time += 1;
         bgw.ReportProgress(Convert.ToInt32(Convert.ToDouble(time) / Convert.ToDouble(all) * 100));
         FileHelper.DeleteFolder(_winformPath + "Temp\\");
         time += 1;
         bgw.ReportProgress(Convert.ToInt32(Convert.ToDouble(time) / Convert.ToDouble(all) * 100));
         string updateInfo = XMLHelper.GetItemValueByKey(_configPath, "version", "updateInfo");
         time += 1;
         bgw.ReportProgress(Convert.ToInt32(Convert.ToDouble(time) / Convert.ToDouble(all) * 100));
         FileHelper.AppendText(_updateLogPath, "\r\n" + updateInfo + "\r\n\r\n");
         time += 1;
         bgw.ReportProgress(Convert.ToInt32(Convert.ToDouble(time) / Convert.ToDouble(all) * 100));
     }
     catch
     {
         return(false);
     }
     return(true);
 }