예제 #1
0
        public ZipExtractEngine
            (List <string> source,
            string destination_dir,
            ArchiveExtractOptions options,
            CopyFileProgressDialog dialog,
            string mask,
            ZipFile zipFile,
            string initial_zip_dir)
        {
            initial_sources     = source;
            initial_destination = destination_dir;
            opts                 = options;
            progress_dialog      = dialog;
            this.mask            = mask;
            zip_file             = zipFile;
            this.initial_zip_dir = initial_zip_dir;

            if (progress_dialog != null)
            {
                progress_dialog.FormClosing += new System.Windows.Forms.FormClosingEventHandler
                                                   (progress_dialog_FormClosing);
            }

            update_progress_delegate_holder = new MethodInvokerUpdateProgress(update_progress);
        }
예제 #2
0
        public MoveFileEngine
            (List <FileInfoEx> source,
            string destination,
            string mask,
            MoveEngineOptions options,
            CopyFileProgressDialog dialog)
        {
            initial_mask         = mask;
            initial_source       = source;
            innitial_destination = destination;
            this.options         = options;
            progress_dialog      = dialog;
            internal_thread      = new Thread(move_proc);

            options_api = MoveFileOptions.CopyAllowed | MoveFileOptions.WriteThrough;
            if ((options & MoveEngineOptions.ReplaceExistingFiles) == MoveEngineOptions.ReplaceExistingFiles)
            {
                options_api = options_api | MoveFileOptions.ReplaceExisting;
            }

            if (progress_dialog != null)
            {
                progress_dialog.FormClosing += new FormClosingEventHandler(progress_dialog_FormClosing);
            }

            update_progress_delegate_holder = new MethodInvokerUpdateProgress(update_progress_unsafe);
            move_progress_delegate_holder   = new CopyProgressRoutine(move_progress_proc);
        }
예제 #3
0
        public CopyFileEngineBase
            (string[] source,
            string destination,
            CopyEngineOptions options,
            CopyFileProgressDialog dialog)
        {
            initial_source      = source;
            initial_destination = destination;
            this.options        = options;
            progress_dialog     = dialog;

            progress_dialog.FormClosing    += new System.Windows.Forms.FormClosingEventHandler(progress_dialog_FormClosing);
            update_progress_delegate_holder = new MethodInvokerUpdateProgress(update_progress);
        }
예제 #4
0
        public CopyFileEngine
            (List <FileInfoEx> source,
            string destination,
            CopyEngineOptions options,
            CopyFileProgressDialog dialog,
            string mask,
            bool dest_remote)
        {
            this.options = options;
            copy_progress_routine_delegate_holder = new CopyProgressRoutine(copy_progress_proc);

            copyFileEx_options = CopyFileExOptions.None;
            if ((options & CopyEngineOptions.AllowDecryptDestination) == CopyEngineOptions.AllowDecryptDestination)
            {
                copyFileEx_options = copyFileEx_options | CopyFileExOptions.ALLOW_DECRYPTED_DESTINATION;
            }
            if (Options.IsVistaOrServer2003OrLater())
            {
                if ((options & CopyEngineOptions.CopySymlinkAsSymlink) == CopyEngineOptions.CopySymlinkAsSymlink)
                {
                    copyFileEx_options = copyFileEx_options | CopyFileExOptions.COPY_SYMLINK;
                }
            }
            if ((options & CopyEngineOptions.NoRewrite) == CopyEngineOptions.NoRewrite)
            {
                copyFileEx_options = copyFileEx_options | CopyFileExOptions.FAIL_IF_EXISTS;
            }
            if ((options & CopyEngineOptions.RewriteIfSourceNewer) == CopyEngineOptions.RewriteIfSourceNewer)
            {
                copyFileEx_options = copyFileEx_options | CopyFileExOptions.FAIL_IF_EXISTS;
            }

            progress_dialog = dialog;
            if (progress_dialog != null)
            {
                progress_dialog.FormClosing += new System.Windows.Forms.FormClosingEventHandler
                                                   (progress_dialog_FormClosing);
            }

            initial_source      = source;
            initial_destination = destination;
            initial_mask        = mask;
            destination_remote  = dest_remote;

            update_progress_delegate_holder = new MethodInvokerUpdateProgress(update_progress);
            copy_thread = new Thread(internal_do);
        }
예제 #5
0
 public FtpDownloadEngine
     (FtpEntryInfo[] source,
     string destination,
     FtpConnection connection,
     FtpTransferOptions opts,
     CopyFileProgressDialog progress_window)
 {
     initial_source                  = source;
     initial_destination             = destination;
     this.connection                 = connection;
     this.opts                       = opts;
     progress                        = progress_window;
     thread_background               = new Thread(new ThreadStart(internal_do));
     update_progress_delegate_holder = new MethodInvokerUpdateProgress(update_progress);
     if (progress_window != null)
     {
         progress_window.FormClosing += new FormClosingEventHandler(progress_dialog_FormClosing);
     }
     transfer_progress_delegate_holder = new FtpTransferProgress(ftp_transfer_proc);
 }