Неправильные результаты возвращены с помощью Client Client Custermodel SharePoint

sharepoint.stackexchange https://sharepoint.stackexchange.com/questions/16483

Вопрос

Я использую модель объекта клиента SharePoint для небольшого приложения. Когда я пытаюсь получить все папки и элементы из «Общих документов» -либрика, он не возвращает все папки и файлы.

Код:

  private void SearchFolder(ClientContext context, SP.Folder folder, SP.List list, int niveau)
    {
        SP.FolderCollection collection = folder.Folders;
        context.Load(collection);
        context.ExecuteQuery();

        //Search subfolders
        foreach (SP.Folder tempFolder in collection)
        {
            string tempFolderNaam = tempFolder.Name;
            SearchFolder(context, tempFolder, list, ++niveau);
        }

        //Search this folder
        SearchFiles(context, folder, list, niveau);
    }

Я называю этот метод с:
SearchFolder (Context, List.rootFolder, List, 0)
Таким образом, он начинается с корневой папки и должен получить все (sub) файлы и (sub) папки

У меня есть 10 папок в корневой и 1 подпапке в первом. Он возвращает только 5 (4 в порядке, один-«формы»-расстановка)

Что -то мне не хватало/не так? Или это ошибка?

Заранее спасибо!

Это было полезно?

Решение

Просто на основе рассмотрения вашего кода, а не знания клиента OM, я замечаю, что вы рекурсивно вызываете SearchFolder на одном и том же объекте клиента. В то время как вы итерации через свой объект коллекции, вы загружаете еще одну коллекцию и вызовы, что может повторно загрузить коллекцию, определенную на более высоком уровне в стеке вызовов. Возможно, стоит создать новый контекстный объект в методе, а не передать существующий вниз через иерархию вызовов, просто чтобы убедиться, что это не вызывает проблемы.

Альтернативный способ обработки всех документов - использование CAML, как описано на MSDN Использование атрибута Scope = 'reccurive'.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с sharepoint.stackexchange
scroll top