Exemple #1
0
            public CopyFilesQueue(string SourceFld, String TargetFld /*, WebBrowser Browser*/,
                                  CheckedListBox chkList, CancellationToken cancellationToken,
                                  delegateCreateElement c, delegateUpdateElement u, delegateGetElement g, delegateProgressBar PM, delegateProgressBar PV
                                  )
            {
                this.SetProgressBarMaximum = PM;
                this.SetProgressBarValue   = PV;
                this.SourceFolder          = SourceFld;
                this.cancellationToken     = cancellationToken;
                this.CreateElement         = c;
                this.UpdateElement         = u;
                this.GetElement            = g;
                TargetFld = TargetFld.Trim();
                if (!TargetFld.EndsWith("\\"))
                {
                    TargetFld += "\\";
                }
                this.TargetFolder = @"\" + TargetFld.Substring(0, 1) + @"$" + TargetFld.Substring(2);

                BaseFolderLenght = SourceFolder.Length;

                divFile = (HtmlElement)THIS.Invoke(CreateElement, "div");
                divFile.SetAttribute("id", "div.Files");
                StringBuilder Output = new StringBuilder();

                GetFolder(SourceFolder, Output);
                Output.Append("Total " + File.Count + " files<br>");
                divFile.InnerHtml = Output.ToString() + _BRLF;
                THIS.BeginInvoke(UpdateElement, divFile);

                divHost = (HtmlElement)THIS.Invoke(CreateElement, "div");
                divHost.SetAttribute("id", "div.Hosts");
                divHost.InnerHtml = HTMLTagSpan("Host list:", CSS_BaseHighLight) + _BRLF;
                GetHost(chkList);
                THIS.BeginInvoke(UpdateElement, divHost);
                THIS.BeginInvoke(UpdateElement, divFile);
                Host.ForEach(h => h.FCount = File.Count);
                THIS.BeginInvoke(SetProgressBarMaximum, File.Count * Host.Count);
            }
Exemple #2
0
        async void CopyFiles()
        {
            await Task.Run(() =>
            {
                delegateCreateElement c = new delegateCreateElement(CreateHtmlElement);
                delegateUpdateElement u = new delegateUpdateElement(UpdateHtmlElement);
                delegateGetElement g    = new delegateGetElement(GetHtmlElement);
                delegateProgressBar PM  = new delegateProgressBar(SetProgressBarMaximum);
                delegateProgressBar PV  = new delegateProgressBar(SetProgressBarValue);

                /*
                 * HtmlElement divFile;
                 * divFile = (HtmlElement)THIS.Invoke(c, "div");
                 * divFile.SetAttribute("id", "div.Files");
                 * divFile.InnerHtml = "FILES";
                 * BeginInvoke(u, divFile);               */

                CopyFilesQueue CopyQ = new CopyFilesQueue(tSourceCopy.Text, tTargetCopy.Text /*, wResult/*.Document*/, chkList_PC, cts.Token, c, u, g, PM, PV);
                CopyQ.Copy();
                cts.Cancel();
                End_Run();
            });
        }
Exemple #3
0
        /**
         * extract zip file
         *
         */
        private void extract_zip(object sender, Ionic.Zip.ExtractProgressEventArgs e)
        {
            if (e.EventType == Ionic.Zip.ZipProgressEventType.Extracting_BeforeExtractEntry)
              {
            Int32 total_size = 0;
            if (Int32.MaxValue < e.CurrentEntry.UncompressedSize)
            {
              total_size = (Int32)(e.CurrentEntry.UncompressedSize / 65536);
            }
            else
            {
              total_size = (Int32)e.CurrentEntry.UncompressedSize;
            }
            Invoke(new delegateProgressBar((Int32 v) => { progressBar1.Value = 0; progressBar1.Minimum = 0; progressBar1.Maximum = v; }), new Object[] { total_size });
              }
              else if (e.EventType == Ionic.Zip.ZipProgressEventType.Extracting_EntryBytesWritten)
              {
            delegateProgressBar increment_bar =
              new delegateProgressBar((int v) => { Cursor.Current = Cursors.WaitCursor; progressBar1.Value = v; });

            if (Int32.MaxValue < e.CurrentEntry.UncompressedSize)
            {
              Object[] inc_arg = { (Int32)e.BytesTransferred / 65536 };
              Invoke(increment_bar, inc_arg);
            }
            else
            {
              Object[] inc_arg = { (Int32)e.BytesTransferred };
              Invoke(increment_bar, inc_arg);
            }
              }
              else
              {
            // nothing todo
              }
        }
Exemple #4
0
        /**
         * extract tar file
         *
         */
        private void extract_tar(TarInputStream tar, string desitination)
        {
            delegateProgressBar increment_bar =
               new delegateProgressBar((int v) => { Cursor.Current = Cursors.WaitCursor; progressBar1.Value = v; });

              ICSharpCode.SharpZipLib.Tar.TarEntry entry = tar.GetNextEntry();

              while (entry != null)
              {
            if (entry.IsDirectory == true)
            {
              if  (Directory.Exists(desitination + "\\" + entry.Name)) Directory.Delete(desitination + "\\" + entry.Name, true);
              if (!Directory.Exists(desitination + "\\" + entry.Name)) Directory.CreateDirectory(desitination + "\\" + entry.Name);
              entry = tar.GetNextEntry();
              continue;
            }

            Invoke(new delegateUpdateLabel((string s) => { this.label2.Text = s; }), new Object[] { entry.Name + " extracting ..." });

            Invoke(new delegateProgressBar((Int32 v) => { progressBar1.Value = 0; progressBar1.Minimum = 0; progressBar1.Maximum = v; }),
              new Object[] { (Int32.MaxValue < entry.Size) ? (Int32)(entry.Size / 65536) : (Int32)entry.Size });

            using (FileStream dest = new FileStream(desitination + "\\" + entry.Name, FileMode.Create, FileAccess.Write))
            {
              Int32 count = 0;
              Int32 write_total = 0;
              byte[] buffer = new byte[32768];

              using (BinaryWriter br = new BinaryWriter(dest))
              {
            while ((count = tar.Read(buffer, 0, 32768)) > 0)
            {
              br.Write(buffer, 0, count);
              write_total += count;
              if (Int32.MaxValue < entry.Size)
              {
                Object[] inc_arg = { (Int32)write_total / 65536 };
                Invoke(increment_bar, inc_arg);
              }
              else
              {
                Object[] inc_arg = { write_total };
                Invoke(increment_bar, inc_arg);
              }
            }
            br.Flush();
            br.Close();
              }
              dest.Close();
            }
            entry = tar.GetNextEntry();
              }
        }