如何通过id快速查找sharepoint文档库?

时间:2009-11-18 19:40:43

标签: performance sharepoint list

鉴于SPList.ID和网站集(或带有子网站的SPWeb),我如何快速找到具有给定ID的文档库?

我可以通过所有网络递归枚举并在每个网站上执行web.Lists [guid],但在我的情况下可能有数千个子网站,我正在寻找实时解决方案。

如果无法快速执行此操作,还有关于如何唯一标识文档库的任何其他建议?我可以存储完整路径(url),但标识将公开显示,我觉得放弃我们确切的SharePoint文档结构并不是很舒服。我是否应该使用手册ID< - >库映射在一个单独的列表中?

4 个答案:

答案 0 :(得分:3)

我投票给手册ID - >在顶级,众所周知的列表中匹配的URL对,仅对提升的特权帐户可见。

答案 1 :(得分:1)

MS不支持此:):... 但是看看这个咯咯笑声:http://weblogs.sqlteam.com/jhermiz/archive/2007/08/15/60288.aspx

答案 2 :(得分:1)

如果您有可用的MOSS搜索,那么它可能会有所帮助,具体取决于您创建这些列表和需要搜索它们之间的延迟。您可以将列表ID映射为托管属性,并快速搜索具有相关ID的列表对象。

对于许多类问题,搜索似乎是翻录大量数据的最快方法。事实上,如果这种方法适合您,您甚至不需要事先了解网站集。目前无法访问我的任何MOSS环境,因此无法验证这是否可行。

答案 3 :(得分:1)

由于您在某处存储ListID,因此您也可以存储WebId。列表由上下文SPWeb打开,所以如果你去:

http://toplevel/_layouts/ListGeneralSettings.aspx?ID={GUID1} // OK
http://toplevel/sub1/_layouts/ListGeneralSettings.aspx?ID={GUID1} // Wont Work (same Guid)

拥有WebId和ListId,您可以简单地:

using(SPWeb subweb = (new SPSite("http://url")).OpenWeb(new Guid("{000...}")))
{
    SPList list = subweb.Lists.GetList(new Guid("{111...}"), true);
    // list logic
}