Как определить, является ли папка вложенной в список SharePoint - PullRequest
2 голосов
/ 21 апреля 2009

Используя следующий код:

using (SPSite site = new SPSite("http://localhost/"))
{
    using (SPWeb web = site.OpenWeb())
    {
        foreach (SPList list in web.Lists)
        {
            if (list.OnQuickLaunch)
            {
                Console.WriteLine(list.Title);

                foreach (SPListItem item in list.Folders)
                {
                    Console.WriteLine("- " + item.Title);
                }
            }
        }
    }
}

и вывод:

... various lists ...
Shared Documents
- Minutes
- Second Level

Я получаю все папки обратно в виде плоского списка - никаких реальных указаний на то, что может произойти, если папка создается как дочерняя для другой папки. Разговаривая с Visual Studio, я вижу несколько интересных свойств, которые могут дать мне некоторые подсказки (например, item.Url и считать / символы или item.Folder.ParentFolder по сравнению с чем-то?), Но должен быть более простой способ.

Спасибо!

Ответы [ 2 ]

3 голосов
/ 21 апреля 2009

Вы можете просматривать иерархию папок из корневой папки любого списка, то есть list.RootFolder. Имея корневой объект SPFolder, вы можете начать рекурсивный обход иерархии, используя свойство SubFolders каждого объекта SPFolder.

1 голос
/ 21 апреля 2009

Вы можете проверить следующий вопрос для ответов. Хотя это не тот же вопрос, основная проблема похожа.

Должен ли я создать свою собственную объектную модель .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...