SharePoint Online: подсчет числа детей в библиотеке документов с помощью CSOM

Мое требование - получить количество дочерних элементов библиотеки документов с помощью CSOM. Подсчет должен быть только непосредственным подсчетом детей и не должен включать подсчет дочерних элементов. Я пытаюсь использовать приведенный ниже код для достижения этой цели:

var newObjClientContext = this.GetSharePointClientContext(accessToken, fullUri);
WebCollection collWeb = newObjClientContext.Web.GetSubwebsForCurrentUser(new SubwebQuery());
var documentLibrary = newObjClientContext.Web.Lists.GetById(docID);

ListItemCollection ltitems = null;

string vquery = @"<View >
                <Query>
                    <Where> 
                        <Or> 
                            <Eq>
                                <FieldRef Name='FSObjType' /> 
                                <Value Type='Lookup'>1</Value>
                            </Eq> 
                            <Eq>
                                <FieldRef Name='FSObjType' /> 
                                <Value Type='Lookup'>0</Value>
                            </Eq> 
                            </Or> 
                        </Where>
                        <OrderBy><FieldRef Name='FileLeafRef' Ascending='TRUE'></FieldRef></OrderBy>                                        
                    </Query>
                    <RowLimit>" + recCount + @"</RowLimit>
                    </View>";

CamlQuery camlQuery = new CamlQuery();

camlQuery.ViewXml = vquery;
ltitems = documentLibrary.GetItems(camlQuery);
newObjClientContext.Load(documentLibrary);
newObjClientContext.Load(ltitems, lists => lists.IncludeWithDefaultProperties(l => l.ParentList));

newObjClientContext.ExecuteQuery();

int totalcount = documentLibrary.ItemCount; //It includes count of all the items present at all levels.

Кто-нибудь может подсказать, как я могу подсчитать количество детей на предыдущем этапе?

1 ответ

Решение

Если я правильно истолковал ваше требование, вы хотите, чтобы количество дочерних элементов корневого уровня в библиотеке документов? Это легко достигается с помощью ItemCount свойство библиотек документов RootFolder,

var list = web.Lists.GetByTitle("Documents");
cc.Load(list.RootFolder, l => l.ItemCount);
cc.ExecuteQuery();

var rootChildItemCount = list.RootFolder.ItemCount;

Или вам требуется количество дочерних элементов каждой папки в вашей библиотеке документов? Это может быть достигнуто с CamlQuery, Дайте мне знать, если вам требуется решение для этого.

Другие вопросы по тегам