Exemplo n.º 1
0
 public CopyWorker(IEnumerable<IVirtualItem> items, IVirtualFolder dest, CopySettings settings, CopyWorkerOptions copyOptions, IVirtualItemFilter filter, IRenameFilter renameFilter)
 {
     this.FSnapshotLock = new object();
     this.FTotalProcessed = new ProcessedSize();
     this.FStoredProgress = -1;
     this.FCopyBufferSize = 0x40000;
     if (items == null)
     {
         throw new ArgumentNullException("items");
     }
     if (dest == null)
     {
         throw new ArgumentNullException("dest");
     }
     if (!VirtualItemHelper.CanCreateInFolder(dest))
     {
         throw new ArgumentException(string.Format(Resources.sCannotCopyToBasicFolder, dest.FullName));
     }
     this.FContent = new AggregatedVirtualFolder(items);
     ICloneable cloneable = dest as ICloneable;
     if (cloneable != null)
     {
         this.FDest = (IVirtualFolder) cloneable.Clone();
     }
     else
     {
         this.FDest = dest;
     }
     this.FCopyOptions = copyOptions;
     if (settings != null)
     {
         this.FCopyOptions |= settings.DefaultCopyOptions & (CopyWorkerOptions.CopyFolderTime | CopyWorkerOptions.ClearROFromCD);
         this.FCopyBufferSize = settings.CopyBufferSize;
     }
     this.FFilter = filter;
     this.FRenameFilter = renameFilter;
     if (this.FRenameFilter != null)
     {
         this.FRenameContent = new Dictionary<IVirtualItem, int>();
         foreach (IVirtualItem item in items)
         {
             this.FRenameContent.Add(item, 0);
         }
     }
     this.Buffer1 = new byte[this.FCopyBufferSize];
 }
Exemplo n.º 2
0
 public bool CheckOption(CopyWorkerOptions option)
 {
     return ((this.FCopyOptions & option) == option);
 }
        private string Write202_CopyWorkerOptions(CopyWorkerOptions v)
        {
            switch (v)
            {
                case CopyWorkerOptions.CheckFreeSpace:
                    return "CheckFreeSpace";

                case CopyWorkerOptions.ClearROFromCD:
                    return "ClearROFromCD";

                case CopyWorkerOptions.DeleteSource:
                    return "DeleteSource";

                case CopyWorkerOptions.SkipEmptyFolders:
                    return "SkipEmptyFolders";

                case CopyWorkerOptions.AsyncCopy:
                    return "AsyncCopy";

                case CopyWorkerOptions.AutoAsyncCopy:
                    return "AutoAsyncCopy";

                case CopyWorkerOptions.CopyACL:
                    return "CopyACL";

                case CopyWorkerOptions.CopyItemTime:
                    return "CopyItemTime";

                case CopyWorkerOptions.CopyFolderTime:
                    return "CopyFolderTime";

                case CopyWorkerOptions.UseSystemCopy:
                    return "UseSystemCopy";
            }
            return XmlSerializationWriter.FromEnum((long) v, new string[] { "DeleteSource", "SkipEmptyFolders", "AsyncCopy", "AutoAsyncCopy", "CheckFreeSpace", "ClearROFromCD", "CopyACL", "CopyItemTime", "CopyFolderTime", "UseSystemCopy" }, new long[] { 1L, 2L, 4L, 8L, 0x10L, 0x20L, 0x40L, 0x80L, 0x100L, 0x200L }, "Nomad.Workers.CopyWorkerOptions");
        }