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]; }
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"); }