0

我对 Sharepoint 编程完全陌生,所以我需要一些指导来了解如何获取 Sharepoint 站点中存在的所有文档的列表,这些文档的扩展名与传入的值匹配。


背景:作为合并的一部分,数以百万计 (7TB) 的文档被导入到 Sharepoint,而不考虑文件类型,这样我们就可以从正在关闭的系统中获取存储的数据。

这些文档中包括危险的文件类型,如 .exe 和 .dll 文件,我们需要保留这些文件,但希望采取适当的措施来确保这些类型的恶意文件不能直接下载。

我们的计划是提取与我们的搜索列表匹配的每个文件,对其进行压缩,上传压缩文件并删除原始文件。为此,我们需要一个一次性应用程序。

实际上涉及多个站点-因此理想情况下,我希望运行一个查询来访问所有站点中的所有文档(它们都在一个根目录下,但它们每个都有自己的数据库),但是我可以遍历一组的网站。


我的想法是使用 Sharepoint 客户端对象模型对每个站点执行查询,以返回给定类型的所有文件的列表。我想要类似的东西

SharepointSite site = new SharepointSite(siteElement, settings.RootURL);
ClientContext clientContext = site.Context;
ListCollection listCollection = clientContext.Web.Lists;
clientContext.Load(listCollection, l=>l.Name.EndsWith(".exe"));
clientContext.Load(listCollection);
clientContext.ExecuteQuery();

但这绝对不是。

我应该如何处理这个问题?

4

2 回答 2

0

从客户端对象模型中的基本编码开始。您只需要遍历站点、其列表,然后是其内容。

http://msdn.microsoft.com/en-us/library/ee857094.aspx

于 2011-09-08T14:38:44.213 回答
0

最后,我创建了一个针对数据库的直接查询,以获取所有匹配文档的特定列表,而无需迭代数百万个项目,然后能够使用客户端组件提取我想要的确切文件。

于 2011-09-16T14:59:05.170 回答