2011-07-27 14 views
5

Quiero seleccionar la lista de carpetas (sin subcarpetas, no recursivas) de una biblioteca de documentos que usa CrossListQueryCache.CAML Consulta para seleccionar carpetas de nivel superior solo

Todo funciona bien excepto que estoy recibiendo TODAS las carpetas y subcarpetas de la lista y no solo el primer nivel de las carpetas. ¿Qué necesito cambiar en el código de abajo de modo que sólo el primer nivel de carpetas es devuelto sin sus subcarpetas y sub-subcarpetas, etc ...

string query = string.Empty; 
string websQuery = string.Format("<Webs Scope=\"{0}\"/>", "None"); 
string lists = "<Lists ServerTemplate=\"101\"" + " ><List ID=\"" + listid + "\" /></Lists>"; 
bool useList = true; 
string relativeUrl = this.GetRelativeUrl(); 
query = string.Format("<Where><Eq><FieldRef Name='FSObjType' /><Value Type='LookUp'>1</Value></Eq></Where>", relativeUrl); 

CrossListQueryInfo info = new CrossListQueryInfo(); 
info.Lists = lists; 
info.Webs = websQuery; 
info.Query = query; 
info.ViewFields = "<FieldRef Name=\"FileLeafRef\"/>"; 
info.WebUrl = web.ServerRelativeUrl; 
CrossListQueryCache cache = new CrossListQueryCache(info); 
SiteDataResults sd = cache.GetSiteDataResults(site, true); 

Respuesta

Cuestiones relacionadas