protected override void CheckAction(FileSystemItemInfo item)
        {
            base.CheckAction (item);
            if (!item.CanCopy ())
                throw new AccessViolationException ("you have no permission to copy <" + item.Path + ">");

            FileSystemItemInfo targetItem = this.directoryService.Get (Path.Combine (this.GetTargetPath (item), item.Name), 0);
            if (targetItem is FileItemInfo && !((CopyFileOperationInfo)this.Info).Quiet) {
                ((CopyFileOperationInfo)this.Info).ConflictItem = targetItem;
                if (targetItem.CanDelete ()) {
                    ((CopyFileOperationInfo)this.Info).ConflictOverwriteable = true;
                } else {
                    ((CopyFileOperationInfo)this.Info).ConflictOverwriteable = false;
                }

                this.InConflict = true;
            }

            while (this.InConflict)
                Thread.Sleep (10);
            if (item is FileItemInfo)
                ((CopyFileOperationInfo)this.Info).OverallProgress.Max += ((FileItemInfo)item).Size;
        }