Библиотека документов Sharepoint и CAML - PullRequest
0 голосов
/ 13 июля 2011

я знаю имя папки Я хочу идентификатор той папки, которая создается в библиотеке документов Sharepoint. Как написать CAML Query для поиска в библиотеке документов, чтобы получить папку и ее идентификатор Пожалуйста, помогите на этом ..

Rushikesh

Ответы [ 2 ]

1 голос
/ 13 июля 2011
SPQuery q = new SPQuery();
q.MeetingInstanceId = -1; //in case your document library is in meeting workspace, query items from all meetings
q.ViewAttributes = "Scope='RecursiveAll'"; //Query all folders (if this is not set, only current folder will be queryied)
q.Query = 



<Where>
      <And>
         <BeginsWith>
            <FieldRef Name='ContentTypeId' />
            <Value Type='Text'>0x0120</Value>
         </BeginsWith>
         <Eq>
            <FieldRef Name='Title' />
            <Value Type='Text'>Folder name</Value>
         </Eq>
      </And>
   </Where>
  • Часть ContentTypeId указывает, что мы хотим запрашивать только папки
  • Часть Заголовок - это место, где вы вводите имя вашей папки.

Затем вы выполняетезапросить и получить идентификатор:

SPListItemCollection items = list.GetItems(q);
if (items.Count > 0)
  int folderId = items[0].ID

Вы также можете перечислить папки списка, используя SPList.Folders свойство

0 голосов
/ 18 декабря 2014

Я знаю, что это старый поток, но я попробовал приведенный выше пример в среде SP 2010, и он не сработал, поэтому я решил добавить свой рабочий CAML. Вместо использования поля ContentTypeID я просто использовал ContentType = Folder

<Where>
    <And>
        <Eq>
            <FieldRef Name='ContentType'/>
            <Value Type='Text'>Folder</Value>
        </Eq>
        <Eq>
            <FieldRef Name="Title"/>
            <Value Type='Text'>Folder Name</Value>
        </Eq>
    </And>
</Where>
...