Sharepoint文档库和CAML

时间:2011-07-13 06:31:28

标签: sharepoint sharepoint-2010 sharepoint-2007

我知道文件夹名称 我想要在Sharepoint文档库中创建的该文件夹的ID。 如何编写CAML Query来搜索文档库以获取文件夹及其ID Plz对此有所帮助..

Rushikesh

2 个答案:

答案 0 :(得分:1)

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部分表示我们只想查询文件夹
  • 标题部分是您放入文件夹名称的位置。

然后执行查询并获取id:

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

您还可以使用SPList.Folders属性

枚举列表文件夹

答案 1 :(得分:0)

我知道这是一个旧线程,但我在SP 2010环境中尝试了上述示例并且它没有工作,所以我想我会添加我的工作CAML。我只使用了ContentType = Folder

,而不是使用ContentTypeID字段
<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>