private void CopyDirectory(string sourceDirName, string destDirName) { try { if (!Directory.Exists(destDirName)) { Directory.CreateDirectory(destDirName); File.SetAttributes(destDirName, File.GetAttributes(sourceDirName)); } if (destDirName[destDirName.Length - 1] != Path.DirectorySeparatorChar) { destDirName = destDirName + Path.DirectorySeparatorChar; } string[] files = Directory.GetFiles(sourceDirName); foreach (string file in files) { File.Copy(file, destDirName + Path.GetFileName(file), true); File.SetAttributes(destDirName + Path.GetFileName(file), FileAttributes.Normal); } string[] dirs = Directory.GetDirectories(sourceDirName); foreach (string dir in dirs) { CopyDirectory(dir, destDirName + Path.GetFileName(dir)); } } catch (Exception ex) { WriteLogHelper.WriteLog_client("CopyDirectory error", ex); MessageBox.Show(ex.Message); throw; } }
private void UnZipFile(string zipFilePath, string targetDir) { try { ICCEmbedded.SharpZipLib.Zip.FastZipEvents evt = new ICCEmbedded.SharpZipLib.Zip.FastZipEvents(); ICCEmbedded.SharpZipLib.Zip.FastZip fz = new ICCEmbedded.SharpZipLib.Zip.FastZip(evt); fz.ExtractZip(zipFilePath, targetDir, ""); } catch (Exception ex) { WriteLogHelper.WriteLog_client("UnZipFile error", ex); MessageBox.Show(ex.Message); } }
/// <summary> /// 开始下载更新的zip /// </summary> private void DownloadUpdateFile() { try { string url = Constants.RemoteUrl_zip; var client = new System.Net.WebClient(); client.DownloadProgressChanged += (sender, e) => { UpdateProcess(e.BytesReceived, e.TotalBytesToReceive); }; client.DownloadDataCompleted += client_DownloadDataCompleted_File; client.DownloadDataAsync(new Uri(url)); SetButtonState(); } catch (Exception ex) { WriteLogHelper.WriteLog_client("DownloadUpdateFile error", ex); MessageBox.Show(ex.Message); } }