是否可以按内容类型获取整个网站集中的所有文件?这是我目前拥有的代码:
//Get list of subsites to traverse
List<string> subsites = getSubSiteList();
foreach (string siteUrl in subsites)
{
using (SPWeb web = new SPSite(siteUrl).OpenWeb())
{
if (web.GetFolder("Pages").Exists)
{
//Get Pages Folder from subsite
SPFolder folderCol = web.Folders["Pages"];
//Set files in Pages folder
SPFileCollection fileCol = folderCol.Files;
foreach (SPFile file in fileCol)
{
//Debug.WriteLine("File in site: " + siteUrl + " file: " + file.Name);
}
}
web.Dispose();
}
}在这段代码中,我遍历了所有的子站点,并转到"Pages“文件夹以获取某个页面,但我希望能够只提取所有这些文件,而不必遍历每个子站点,并按内容类型获取它,而不是进入"Pages”文件夹并从中解析。代码看起来是什么样子?谢谢!
发布于 2012-03-02 02:46:14
你要找的是一个site data query。
其他选择是以编程方式利用搜索功能,但我认为它不如一种选择;站点数据查询实际上就是为此而设计的。
发布于 2012-03-02 02:24:52
您可以尝试类似这样的操作来获取所有站点以及子站点。有关可使用的不同选项的列表,请参阅此MSDN站点。How to: Enumerate Sites and Site Collections
SPSite oSiteCollection = SPContext.Current.Site;
SPWebCollection collWebsite = oSiteCollection.AllWebs;
for (int i = 0; i < collWebsite.Count; i++)
{
using (SPWeb oWebsite = collWebsite[i])
{
SPListCollection collList = oWebsite.Lists;
for (int j = 0; j < collList.Count; j++)
{
Label1.Text += SPEncode.HtmlEncode(collWebsite[i].Title) + " "
+ SPEncode.HtmlEncode(collList[j].Title) + "<BR>";
}
}https://stackoverflow.com/questions/9521713
复制相似问题