Как я могу получить список корзины?

У меня есть несколько удаленных файлов и папок в корзине. Когда я восстанавливаю предмет, мне нужно восстановить какие-то другие предметы по моему специальному алгоритму. Итак, я использую следующий фрагмент кода в Event Receiver для получения элементов корзины:

var recycleBinItems = properties.Web.GetRecycleBinItems(new SPRecycleBinQuery());

Потом перечисляю на них. Но это долгая операция, поэтому я хочу получить список корзин, чтобы использовать CAML для извлечения данных. Как я могу получить объект корзины?


person andDaviD    schedule 25.05.2012    source источник


Ответы (1)


К сожалению, нет вызова API, который можно использовать для передачи запроса CAML в корзину. Как вы заметили, существует GetRecycleBinItems. метод в классе SPWeb, но, согласно документации в MSDN, он полезен только для управления порядком сортировки или ограничения возвращаемых элементов.

Свойство RecycleBin в SPWeb — это, по сути, тот же шлюз, хотя по умолчанию он возвращает все элементы.

Что может помочь вам в будущем, так это знание того, что для SPWeb есть ДВЕ корзины — одна на веб-уровне, а другая на уровне семейства сайтов. Вы можете настроить корзину веб-уровня для хранения файлов только в течение недели или месяца — что имеет смысл, учитывая ваш объем, чтобы ограничить файлы, которые вам нужно искать в более общем случае. Файлы будут перемещены с веб-уровня в корзину на уровне семейства веб-сайтов, поэтому при необходимости вы все равно сможете восстановить их, и они также могут храниться там в течение определенного периода времени.

person Goyuix    schedule 25.05.2012