コード例 #1
0
        public void CopyItem(FileSystemCopyItemOptions options)
        {
            var item = options.Item;
            var destinationDirectory = options.DestinationDirectory;

            if (!IsFileItemExists(item))
            {
                ThrowItemNotFoundException(item);
            }
            if (!IsFileItemExists(destinationDirectory))
            {
                ThrowItemNotFoundException(destinationDirectory);
            }
            if (!AllowCopyOrMove(item, destinationDirectory))
            {
                ThrowNoAccessException();
            }

            var sourceFileItem = GetFileItem(item);
            var copyFileItem   = CreateCopy(sourceFileItem);

            copyFileItem.ParentId = ParseKey(destinationDirectory.Key);
            copyFileItem.Name     = GenerateCopiedFileItemName(copyFileItem.ParentId, copyFileItem.Name, copyFileItem.IsDirectory);
            FileManagementDbContext.FileItems.Add(copyFileItem);

            if (copyFileItem.IsDirectory)
            {
                CopyDirectoryContentRecursive(sourceFileItem, copyFileItem);
            }
            FileManagementDbContext.SaveChanges();
        }
コード例 #2
0
 public void CopyItem(FileSystemCopyItemOptions options)
 {
     Copy(options.Item, options.DestinationDirectory, false);
 }