当前位置: 首页>>建站开发>>正文


获取文件夹CAML下的项目

webfans 建站开发 , , 去评论

问题描述

我正在尝试检索文档库中的certin文件夹下的所有项目。

这是我迄今为止

List DocumentsList = clientContext.Web.Lists.GetByTitle(list);
CamlQuery camlQuery = new CamlQuery();
camlQuery = new CamlQuery();
camlQuery.ViewXml = @"<View Scope='Recursive'>
                        <Query>
                            <Where>
                                <eq>
                                    <FieldRef Name='FileDirRef'/>
                                    <Value Type='Text'>
                                        /ecm/Business/Business/Projects/IDECO_P01030000
                                    </Value>
                                </eq>
                            </Where>
                        </Query>
                        <RowLimit Paged='TRUE'> 30 </RowLimit>
                    </View>";
ListItemCollection listItems = DocumentsList.GetItems(camlQuery);
clientContext.Load(listItems);
clientContext.ExecuteQuery();

它肯定是一个caml查询问题,我只是不确定如何解决它,因为任何想法都是有用的

最佳解决思路

我设法让它工作。

我将范围从”Recursive”更改为”RecursiveAll”,RecursiveAll获取specidified位置下的所有文件和所有文件夹。

Caml查询被替换为

    camlQuery.ViewXml = "<View Scope=\"RecursiveAll\"> " +
                    "<Query>" +
                    "<Where>" +
                                "<Eq>" +
                                    "<FieldRef Name=\"FileDirRef\" />" +
                                    "<Value Type=\"Text\">/ecm/Business/Business/Projects/IDECO_P01030000</Value>" +
                                 "</Eq>" +
                    "</Where>" +
                    "</Query>" +
                    "</View>";

次佳解决思路

尝试设置CamlQuery的FolderServerRelativeUrl属性。请参阅:here

第三种解决思路

你也应该尝试加载所有的文件夹和文件。手段

 clientContext.Load(DocumentList);
 clientContext.Load(DocumentList.RootFolder);
 clientContext.Load(DocumentList.RootFolder.Folders);
 clientContext.Load(DocumentList.RootFolder.Files); 
 clientContext.Load(listItems);
 clientContext.ExecuteQuery();

您可以在Library中获得FolderCollection

 FolderCollection FC = Document.RootFolder.Folders
 Foreach(Folder Fl in FC)
         {
                FileCollection flc = fl.files;
         } 

跳过它的帮助。

参考资料

本文由朵颐IT整理自网络, 文章地址: https://duoyit.com/article/1495.html,转载请务必附带本地址声明。