Получение всех файлов в семействе сайтов по типу контента - PullRequest
1 голос
/ 01 марта 2012

Можно ли получить все файлы по типу контента во всем семействе сайтов?Это код, который у меня сейчас есть:

//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();
                }
            }

В этом коде я перебираю все дочерние сайты и перехожу в папку «Страницы», чтобы получить определенную страницу, но я хотел бы иметь возможность простоизвлеките все эти файлы без необходимости проходить через каждый дочерний сайт и получать их по типу контента, а не заходить в папку «Страницы» и анализировать оттуда.Как будет выглядеть код?Спасибо!

Ответы [ 2 ]

3 голосов
/ 01 марта 2012

То, что вы ищете, это запрос данных сайта .

Другими вариантами может быть программное использование функциональности поиска, но я не думаю, что это так же хорошо, как вариант; запрос данных сайта в буквальном смысле предназначен именно для этого.

0 голосов
/ 01 марта 2012

вы можете попробовать что-то вроде этого, чтобы получить все сайты, а также под-сайты, чтобы увидеть этот сайт MSDN список различных вариантов, которые вы можете использовать. Как: перечислять сайты и коллекции сайтов

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>";
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...