我有一个包含文件夹的SharePoint自定义列表。每个文件夹中都有项目。 文件夹名称是Folder1,Folder2,Folder3 ....所以。
我希望在迭代中通过其唯一ID获取每个文件夹。
SPFolder folder = list.ParentWeb.GetFolder(new Guid("{xxxxx-xxxx-xxxxxx-xxxx}"));
如何找到每个文件夹的唯一ID?即GUID在括号中定义。
谢谢...
答案 0 :(得分:1)
我真的不明白为什么你想根据guid获取文件夹,如果你可以获取你可能已经拥有该文件夹的guid。
我通常会使用扩展来解决这个问题。这是您正在寻找的变种
using Microsoft.SharePoint;
using System;
using System.Collections.Generic;
using System.Linq;
namespace Herlitz.Common.Extensions
{
public static class SPListItemCollectionExtensions
{
/// <summary>
/// Get a folder by it's guid
/// </summary>
/// <param name="spListItemCollection"></param>
/// <param name="uniqueId"></param>
/// <returns>SPFolder or Null</returns>
public static SPFolder GetFolderByGuid(this SPListItemCollection spListItemCollection, Guid uniqueId)
{
var firstOrDefault = spListItemCollection.Cast<SPListItem>().FirstOrDefault(x => x.UniqueId.Equals(uniqueId));
return firstOrDefault != null ? firstOrDefault.Folder : null;
}
}
}
并查询
using (SPSite site = new SPSite(spSiteUrl))
{
using (SPWeb web = site.RootWeb)
{
SPList myList = web.GetList("thelist");
SPFolder theFolder = myList.Folders.GetFolderByGuid(new Guid("{c4819d5f-276e-4923-81cd-a3b014f1db6g}"));
}
}
答案 1 :(得分:1)
SPFolder具有UniqueId属性。你可以在SPWeb.GetFolder方法中使用Guid作为参数。