我有一个照片库库。我想获得所有专辑和他们的图像。 现在我得到所有相册(根级别项目),如下所示:
ClientContext ctx = new ClientContext(_url);
_mylib = web.Lists.GetByTitle("mylib");
_albums = _list.GetItems(new CamlQuery());
_albums代表相册,位于图库的根目录。如何获取每个相册中的文件/项目?
mylib
-album1
--image1.jpg
--image2.jpg
-album2
--image1.jpg
...
答案 0 :(得分:1)
这是不久前的,但我想我会进入这里,添加“RecursiveAll”来完成所有事情,并且FSObjType不包括列表中的文件夹。
.Include语句允许您初始化要从列表中访问的属性。 (关于你可以访问哪些属性的答案就在这里,但我无法找到我生命中的帖子......)
ListItemCollection listItems = null;
List documentsList = ctx.Web.Lists.GetByTitle("mylib");
CamlQuery camlQuery = new CamlQuery();
camlQuery.ViewXml = @"<View Scope='RecursiveAll'>
<Query>
<Where>
<Eq>
<FieldRef Name='FSObjType' />
<Value Type='int'>1</Value>
</Eq>
</Where>
</Query>
</View>";
listItems = documentsList.GetItems(camlQuery);
ctx.Load(
listItems,
items => items
.Include(
item => item["ID"]
));
ctx.ExecuteQuery();