如何使用 C# 以编程方式从 SharePoint 站点获取所有图片库的列表

How to get list of all picture libraries from SharePoint site programatically using C#

我正在为 SharePoint 2010 构建一个 Web 部件,以在两个下拉列表中获取所有文档库和图片库。我可以使用以下代码获取所有文档库。如何获取站点中的所有图片库。

`string currentSite = SPContext.Current.Web.Site.Url;
List<string> libraryList = new List<string>();

using (SPSite oSite = new SPSite(currentSite))
{
   using (SPWeb oWeb = oSite.OpenWeb())
   {
      SPListCollection docLibraries =   Web.GetListsOfType(SPBaseType.DocumentLibrary);

      foreach (SPList list in docLibraries)
      {
         libraryList.Add(list.Title.ToString());
      }
   }
}`

好吧,您可以尝试检查列表基本模板:

var pictureLibs = new List<string>();
foreach(var list in oWeb.Lists){
    if(list.BaseTemplate.Equals(SPListTemplateType.PictureLibrary))
    pictureLibs.Add(list.Title);
}

这应该只会为您提供那些基于标准图片库模板的库。

但是,如果您想获得任何类型的包含图片的列表,您可以检查每个列表的内容类型,条件如下:

if(list.ContentTypes.Any(x => x.Id.IsChildOf(SPBuiltInContentTypeId.Picture)))