protected void ActivationProgressChanged(object sender, FileCopyProgressChangedEventArgs e) { pgbApp.Value = e.ProgressPercentage; lab_percent.Text = e.ProgressPercentage.ToString() + "%"; lab_percent.Update(); lab_fileinfo.Text = string.Format("{0}KB/{1}KB", (e.BytesToCopy / 1024).ToString("F2"), (e.TotalBytesToCopy / 1024).ToString("F2")); lab_fileinfo.Update(); lab_filename.Text = "正在安装:" + e.SourceFileName; lab_filename.Update(); }
private void OnActivationProgressChanged(FileCopyProgressChangedEventArgs e) { if (ActivationProgressChanged != null) { ActivationProgressChanged(this, e); } }
private void fileCopyer_FileCopyProgressChanged(object sender, FileCopyProgressChangedEventArgs e) { if (ActivationProgressChanged != null) { ActivationProgressChanged(sender, e); } }
private void FileCopyWorker(Manifest manifest, string sourcePath, AsyncOperation asyncOp) { Exception exception = null; FileCopyProgressChangedEventArgs e = null; Stream rStream = null; Stream wStream = null; double writeBytes = 0; string[] sourceFiles = null; string[] targetFiles = null; GetFiles(manifest, sourcePath, out sourceFiles, out targetFiles); if (!TaskCanceled(asyncOp.UserSuppliedState)) { try { double totalBytes = GetFileLength(sourceFiles); byte[] buffer = new byte[writeFileLength]; int len = 0; int offset = 0; for (int i = 0; i < sourceFiles.Length; i++) { try { if (!Directory.Exists(Path.GetDirectoryName(targetFiles[i]))) { Directory.CreateDirectory(Path.GetDirectoryName(targetFiles[i])); } rStream = new FileStream(sourceFiles[i], FileMode.Open, FileAccess.Read, FileShare.None); wStream = new FileStream(targetFiles[i], FileMode.Create, FileAccess.Write, FileShare.None); while ((len = rStream.Read(buffer, offset, writeFileLength)) > 0) { wStream.Write(buffer, offset, len); writeBytes += len; e = new FileCopyProgressChangedEventArgs((int)(writeBytes / totalBytes * 100), asyncOp.UserSuppliedState); e.SourceFileName = sourceFiles[i]; e.TargetFileName = targetFiles[i]; e.TotalBytesToCopy = totalBytes; e.BytesToCopy = len; e.Manifest = manifest; asyncOp.Post(this.onProgressReportDelegate, e); Thread.Sleep(1); } } finally { DisposeStream(wStream); DisposeStream(rStream); } } } catch (Exception ex) { exception = ex; OnFileCopyError(new FileCopyErrorEventArgs() { Error = ex, Manifest = manifest }); } if (exception == null && targetFiles.Length > 0) { //解压文件 string fileName = targetFiles.First(); ZipHelper.DeCompressionZip(fileName, Path.GetFullPath(".")); File.Delete(fileName); } } this.CompletionMethod(manifest, exception, TaskCanceled(asyncOp.UserSuppliedState), asyncOp); }
protected void OnProgressChanged(FileCopyProgressChangedEventArgs e) { if (FileCopyProgressChanged != null) { FileCopyProgressChanged(this, e); } }