我正在为小应用程序使用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)
因此,它从rootfolter开始,应该获取所有(sub)文件和(sub)文件夹

我在Rootfolter中有10个文件夹,第一个文件夹中有1个子文件夹。它仅返回5(4个还可以,一个是“表格” - 折叠式)

我缺少/做错了什么吗?还是这是一个错误?

提前致谢!

有帮助吗?

解决方案

仅基于查看您的代码,而不是对客户端OM的了解,我注意到您在同一客户端上下文对象上递归调用SearchFolder。当您通过收集对象迭代时,您将加载另一个集合并呼叫执行,这可能会重新加载在呼叫堆栈中较高级别定义的集合。可能值得在方法中创建一个新的上下文对象,而不是通过呼叫层次结构传递现有的对象,只是为了确保不会引起问题。

处理所有文档的另一种方法是使用CAML,如上所述 MSDN 使用范围='递归'属性。

许可以下: CC-BY-SA归因
scroll top