c# - CAML 查询仅选择顶级文件夹

标签 c# sharepoint sharepoint-2010 caml

我想使用 CrossListQueryCache 选择文档库的文件夹列表(没有子文件夹,不是递归的)。

一切正常,只是我收到了列表中的所有文件夹和子文件夹,而不仅仅是第一级文件夹。 我需要在下面的代码中更改什么,以便只返回第一级文件夹而不返回它们的子文件夹和子子文件夹等...

string query = string.Empty;
string websQuery = string.Format("<Webs Scope=\"{0}\"/>", "None");
string lists = "<Lists ServerTemplate=\"101\"" + " ><List ID=\"" + listid + "\" /></Lists>";  
bool useList = true;
string relativeUrl = this.GetRelativeUrl();
query = string.Format("<Where><Eq><FieldRef Name='FSObjType' /><Value Type='LookUp'>1</Value></Eq></Where>", relativeUrl); 

CrossListQueryInfo info = new CrossListQueryInfo();
info.Lists = lists;
info.Webs = websQuery;
info.Query = query;
info.ViewFields = "<FieldRef Name=\"FileLeafRef\"/>";
info.WebUrl = web.ServerRelativeUrl;
CrossListQueryCache cache = new CrossListQueryCache(info);
SiteDataResults sd = cache.GetSiteDataResults(site, true);

最佳答案

将 SPQuery.ViewAttributes 与不同于“递归”的“作用域”一起使用:
http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spquery.viewattributes.aspx

如果您只想显示文件夹或不显示文件夹,那么您可以添加有关 ContentType 的信息,就像这里(Drax 的回答):
CAML queries: how to filter folders from result set?

关于c# - CAML 查询仅选择顶级文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6845506/

相关文章:

c# - 根据从 C# 编写的方式,两个相同的文件具有不同的文件大小

javascript - Sharepoint 2013 中的事件单击单选按钮 JQuery

共享点站点的 Internet Explorer 中的 Javascript 错误

sharepoint-2010 - 如何从 Sharepoint 2010 中的 SocialProfile 获取 SPUser 对象?

c# - Telerik MVC TreeView 操作

c# - C# 中的类模板实现 shim

c# - Web 应用程序时区问题

javascript - 使用 Sharepoint 查询字符串值作为应用程序部分属性

sharepoint - 在 Mac 机器上使用 Google Chrome 和 FireFox 访问 SharePoint 内网

sharepoint - 如何清除 SharePoint 使用日志和/或 Web 分析日志