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(); }
public void CopyItem(FileSystemCopyItemOptions options) { Copy(options.Item, options.DestinationDirectory, false); }