2008-10-06 49 views
0

好像与CAML搜索和SPQuery不正常对自定义元数据搜索SPFolders而不是文件时,或自定义内容类型进行搜索时工作。我一直在使用U2U来测试各种查询,只是没有得到任何地方。该文档在主题上并不完整,Google也没有帮助。CAML查询,以查找嵌套在文档库树特定SPFolder

在一个测试中,我试图找到树中特定自定义内容类型的所有SPFolders。如果我理解正确的CAML,这应该工作:

<Query> 
    <Where> 
     <Eq> 
      <FieldRef Name='ContentType' /> 
      <Value Type='Text'>CustomTypeName</Value> 
     </Eq> 
    </Where> 
</Query> 

在另一个试验中,我试图找到具有自定义元数据属性设置为特定值的任何SPFolder。

<Query> 
    <Where> 
     <Eq> 
      <FieldRef Name='CustomProp' /> 
      <Value Type='Text'>SpecificPropValue</Value> 
     </Eq> 
    </Where> 
</Query> 

在这两种情况下,我设置了根搜索到包含文件夹,其中包含文件夹,其中包含文件夹中的文档库(唷)。另外,我设置SPQuery递归搜索。

我正在寻找两个步骤的文件夹是最下面的树。我不想迭代所有的方式来手动找到有问题的文件夹。

编辑知道我将SPList.GetItems与SPQuery作为参数并将SPWeb.GetSiteData与SPSiteDataQuery作为参数一起使用也许会有帮助。目前看起来这些查询的搜索集中没有包含文件夹。

任何帮助将不胜感激。

回答

2

经过更多的研究,我回答了我自己的问题。

显然,我用来查询的方法不会将SPFolders作为结果集中的项目返回。只有列表项被返回,基本上只是文档。

我修复是执行CAML查询都带有一定的元数据标签/值的文件,然后使用第一个作为组代表文件夹的父文件夹。足够满足我的需求。