是否有办法获取网站(网站集)网站目录,即在协作或发布门户的网站集设置中定义的目录?
当然,我可以遍历网站集的所有SPWebs,但我希望有一种更简单的方法来获取目录,因为信息似乎已存储在某处。
再见 FLO
更新
当然我想以编程方式获取信息。
答案 0 :(得分:1)
网站目录路径存储在根网站属性包
中以下代码取自内部实用程序类SiteDirectoryUtil,显示了如何确定路径的逻辑
internal static string GetLocalSiteDirectoryLocation(SPWeb rootWeb)
{
if (rootWeb != null)
{
if (rootWeb.AllProperties.ContainsKey("DefaultSiteDirectorySiteId"))
{
string str = rootWeb.AllProperties["DefaultSiteDirectorySiteId"] as string;
if (string.IsNullOrEmpty(str))
{
return string.Empty;
}
if (!rootWeb.AllProperties.ContainsKey("DefaultSiteDirectoryWebId"))
{
return string.Empty;
}
string str2 = rootWeb.AllProperties["DefaultSiteDirectoryWebId"] as string;
if (string.IsNullOrEmpty(str2))
{
return string.Empty;
}
try
{
using (SPSite site = new SPSite(new Guid(str), rootWeb.Site.Zone))
{
using (SPWeb web = site.OpenWeb(new Guid(str2)))
{
return web.ServerRelativeUrl;
}
}
}
catch (FileNotFoundException)
{
return string.Empty;
}
}
else
{
return string.Empty;
}
}
return string.Empty;
}
答案 1 :(得分:0)
您指的是网站内容和结构下的网站目录吗?
如果是这样,您可以浏览到http://sitename/_layouts/sitemanager.aspx
以查看网站目录(假设您拥有该网站的足够权限)。
答案 2 :(得分:0)
对于它的价值,如果您有权访问WSS数据库,您可以利用现有的SP或创建自己的SP。我希望返回“RequestAccessEmail”之类的内容,并将其合并到我们自己的站点地图中(方便了解网站所有者有时是谁)。我们的SP是最基本的...
CREATE PROCEDURE [dbo].[my_sitemap]( @PartialUrl nvarchar(260) ) AS SELECT ID, FullUrl, Title, RequestAccessEmail FROM Webs WHERE FullUrl LIKE @PartialUrl + '%' ORDER BY FullUrl GO
对我来说工作得很好。希望这会有所帮助。