我如何获得回收站列表?

时间:2012-05-25 13:22:29

标签: c# .net sharepoint caml recycle-bin

我在回收站中有一些已删除的文件和文件夹。当我恢复一个项目时,我需要根据我的特殊算法恢复一些其他项目。因此,我在事件接收器中使用以下代码片段来获取回收站的项目:

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

然后我列举了他们。但这是一个很长的操作,所以我想获得一个回收站列表来使用CAML来检索数据。如何获得回收站的对象?

1 个答案:

答案 0 :(得分:1)

不幸的是,您没有可用于将CAML查询传递到回收站的API调用。如您所知,SPWeb类上有一个GetRecycleBinItems方法,但根据MSDN上的文档,它只对控制排序顺序或限制返回的项目很有用。

SPWeb的RecycleBin属性基本上是相同的网关,但它默认返回所有项目。

对于未来可能有所帮助的事情是知道SPWeb有两个回收箱 - 一个在网络级别,另一个在网站集合。您可以将Web级别回收站配置为仅保留一周或一个月的文件 - 这是有意义的,因为您的卷可以限制在更一般情况下需要搜索的文件。这些文件将从Web级别移动到网站集级别回收站,因此您仍然可以在需要时恢复它们,并且可以在那里维护一段时间。