gpt4 book ai didi

c# - Sharepoint CSOM - 如何过滤掉系统/默认文档库?

转载 作者:行者123 更新时间:2023-11-30 19:24:22 24 4
gpt4 key购买 nike

我需要从 Sharepoint 站点获取所有文档。我从获取所有文档库开始:

private IEnumerable<List> GetAllDocumentLibraries(ClientContext context)
{
var lists = context.LoadQuery(context.Web.Lists.Where(list => list.BaseType == BaseType.DocumentLibrary));
context.ExecuteQuery();
return lists;
}

然后从每个...中获取所有项目

var items = list.GetItems(CamlQuery.CreateAllItemsQuery());

_context.Load(items, i => i.Include(it => it.DisplayName, it => it.File));

_context.ExecuteQuery();

问题是有很多系统库会返回诸如“controls”、“edit-mode-21”等类似文件。我不想通过特定名称过滤掉它们,因为在其他 SP 站点上可能还有其他名称。

我如何从 List 及其属性中知道它是用户创建的列表(意味着包含我需要的文档)还是只是一个 sys.图书馆?

谢谢

最佳答案

您可以尝试几个条件。您需要检查并选择适合您情况的组合:

  • Hidden == false - 应排除大部分 SharePoint 内部(Master Page GallerySolution Gallery 等)。
  • IsSiteAssetsLibrary == false - 这将排除Site AssetsSite Collection Images。但也可以排除用户创建的其他图像库。
  • IsCatalog == false - 大多数目录也被隐藏,样式库除外。
  • BaseTemplate == 101 - 这是 DocumentLibrary 的模板。这将排除目录、图像库、页面库和可能的其他一些内容。

关于c# - Sharepoint CSOM - 如何过滤掉系统/默认文档库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37704813/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com