我是Sharepoint编程的新手,所以我需要一些指导,了解如何获取Sharepoint网站中存在的所有文档的列表,这些文档的扩展名与传入的值相匹配。
背景:作为合并的一部分,数百万(7TB)的文档被导入Sharepoint而不考虑文件类型,因此我们可以从正在关闭的系统中获取存储的数据。
这些文档中包含危险文件类型,如.exe和.dll文件,我们需要保留这些文件类型,但希望采取适当措施确保这些类型的恶意文件不能直接下载。
我们的计划是提取与我们的搜索列表匹配的每个文件,压缩它,上传zip并删除原始文件。要做到这一点,我们需要一次性应用程序。
实际上涉及多个站点 - 所以理想情况下我喜欢运行一个查询来访问所有站点中的所有文档(它们都在一个根目录下,但它们各自都有自己的数据库)但我很好迭代跨越一组网站。
我的想法是使用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();
但这绝对不是它。
我该如何处理这个问题?
答案 0 :(得分:0)
从客户端对象模型中的基本编码开始。您只需要迭代网站,列表及其内容。
答案 1 :(得分:0)
最后,我创建了一个针对数据库的直接查询,以获取所有匹配文档的特定列表,无需迭代数百万个项目,然后能够使用客户端组件来提取我想要的确切文件。