Количество элементов должно быть 10, но 0 - PullRequest
1 голос
/ 14 декабря 2010

items.count должен быть по умолчанию 10. У меня есть 10 подпапок (Выпуск 1 ..... Выпуск 10) с этой библиотекой документов "Auto Cad", и у каждой подпапки есть файл с именем license.txt. хммм Почему это не возвращает никаких файлов?

private void btnGetFileGuid_Click(object sender, EventArgs e)
{ 

using (SPSite site = new SPSite("https://www.abc.com/sites/Software"))
 { 
 using (SPWeb web = site.OpenWeb())
 { 
  SPList spList = web.Lists["Auto Cad"];
  string fileName = "license.txt"; 
  SPQuery query = new SPQuery(); 
  query.Query="<Where><Eq><FieldRef Name='FileLeafRef' /><Value Type='Text'>" + fileName + "</Value></Eq></Where>"; 
  SPListItemCollection items = spList.GetItems(query); 
  if (items.Count > 0) 
   { 
    Guid id = items[0].UniqueId; 
    lblGuid.Text = id.ToString(); 
   } 
  }
 } 
}  

Ответы [ 3 ]

0 голосов
/ 14 декабря 2010

SPQuery выполняет поиск только в определенной папке - для рекурсивного поиска в подпапках необходимо установить

SPQuery.ViewAttributes = "Scope = \" Recursive \ "";

Таким образом, ваш код должен быть

SPQuery query = new SPQuery(); 
query.ViewAttributes = "Scope=\"Recursive\"";
query.Query=".... REST OF YOUR CODE HERE "
0 голосов
/ 14 декабря 2010

Вы должны сделать рекурсивный вызов, используя решение, приведенное в ссылке на вопрос, приведенную ниже.

Я бы рекомендовал использовать qry.ViewAttributes = "Scope = 'RecursiveAll'";чтобы получить документы и папки, а также запрос , чтобы получить все элементы в списке, включая элементы в подпапках в sharepoint

0 голосов
/ 14 декабря 2010
query.Query="" + fileName + "";

Эта строка неверна. Это должен быть запрос CAML, а не имя файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...