Запрос только возвращает элементы непосредственно в этой папке, потому что ваш CAML настроен на возврат только элементов, где FileDirRef
(или путь к папке) равен /sites/projects/ArchDocs/FolderA
, все, что находится в подпапке, будет иметь другой FileDirRef
, например /sites/projects/ArchDocs/FolderA/SubFolder1
, который не будет равным указанному вами пути. То, что вы хотите сделать, это вместо элемента оператора <Eq>
, вы хотите использовать <BeginsWith>
.
Примечание , у вас также появляется синтаксическая ошибка при конкатенации строк context.Web.ServerRelativeUrl + "/ArchDocs/FolderA"</Value>
Попробуйте:
camlQuery6.ViewXml = "<View Scope=\"RecursiveAll\"><Query><Where><BeginsWith><FieldRef Name=\"FileDirRef\" /><Value Type=\"Text\">" + context.Web.ServerRelativeUrl + "/ArchDocs/FolderA" + "</Value></BeginsWith></Where></Query></View>";
ListItemCollection collListItem6 = context.Web.GetList(context.Web.ServerRelativeUrl + "/ArchDocs").GetItems(camlQuery6);
context.Load(collListItem6, items => items.Include(
item => item.Id,
item=>item["FileDirRef"],
item => item["Title"],
item => item["DealStage"]));