Example #1
0
 private void OnActivationProgressChanged(FileCopyProgressChangedEventArgs e)
 {
     if (ActivationProgressChanged != null)
     {
         ActivationProgressChanged(this, e);
     }
 }
Example #2
0
 private void fileCopyer_FileCopyProgressChanged(object sender, FileCopyProgressChangedEventArgs e)
 {
     if (ActivationProgressChanged != null)
     {
         ActivationProgressChanged(sender, e);
     }
 }
Example #3
0
 protected void OnProgressChanged(FileCopyProgressChangedEventArgs e)
 {
     if (FileCopyProgressChanged != null)
     {
         FileCopyProgressChanged(this, e);
     }
 }
Example #4
0
        private void ReportProgress(object state)
        {
            FileCopyProgressChangedEventArgs e = state as FileCopyProgressChangedEventArgs;

            OnProgressChanged(e);
        }
Example #5
0
        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
                    });
                }
            }
            this.CompletionMethod(manifest, exception, TaskCanceled(asyncOp.UserSuppliedState), asyncOp);
        }