2008-10-06 82 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查詢都帶有一定的元數據標籤/值的文件,然後使用第一個作爲組代表文件夾的父文件夾。足夠滿足我的需求。