1

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

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

然后我列举他们。但这是一个漫长的操作,所以我想获取一个回收站列表以使用 CAML 检索数据。我怎样才能得到回收站的对象?

4

1 回答 1

1

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

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

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

于 2012-05-25T17:26:02.337 回答