Можно ли получить список всех папок в библиотеке документов SharePoint, используя SPQuery?
Что-то, что вы можете получить в файловой системе, если вы открыли командную строку Windows и запустили
dir /b /A:D /S
Проблема в том, что если вы создаете простой SPQuery и устанавливаете viewAttributes равным Scope='RecursiveAll'
, результирующий набор содержит элементы, но не папки.
Или я что-то упустил?
Upd .: Причиной этого вопроса является (было) то, что я должен создать решение, в котором "пакет файлов" имеет смысл.
Когда мой клиент говорит о «документе», он фактически означает сущность, которая может состоять из нескольких файлов и общего набора метаданных для этих файлов.
Например, документ может называться «Письмо моей бабушке» (атрибуты: адрес бабушки, заголовок письма), но он состоит из нескольких файлов: собственно буква в документе MS Word и JPEG изображение.
Итак, идея заключалась в том, чтобы я мог создать тип контента, производный от папки, и добавить несколько полей к этому типу контента (адрес, заголовок). Все файлы, помещенные в эту папку, естественно станут частями «документа».
Поскольку мы ожидаем, что таких документов будет много, мы также создадим иерархию папок для папок обычного типа.
Теперь мы подошли к вопросу: как показать моему клиенту вид «Недавние документы»? Это должно работать рекурсивно, чтобы перечислить все «документы». Рекурсия по SPFolder
объектам слишком медленная из-за количества запросов, которые нужно сделать. Мы надеялись на рекурсивный SPQuery
, но это, похоже, не решаемо таким образом.