ファイルの代わりにSPFoldersを検索する場合、またはカスタムコンテンツタイプを検索する場合、CAMLおよびSPQueryを使用した検索はカスタムメタデータに対して適切に機能しないようです。私はU2Uを使用してさまざまなクエリをテストしてきましたが、どこにも到達していません。ドキュメントはこのトピックについて完全ではなく、グーグルも役に立ちません。
あるテストでは、特定のカスタムコンテンツタイプであるSPFolderをツリー内で見つけようとしています。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を設定しています。
2つ下のステップで検索しているフォルダーは、ツリーの一番下にあります。問題のフォルダを手動で見つけるために、最後まで繰り返したくありません。
編集SPQueryを引数として使用するSPList.GetItemsと、引数としてSPSiteDataQueryを使用するSPWeb.GetSiteDataの両方を使用していることを知っておくと役立つ場合があります。現時点では、これらのクエリのいずれの検索セットにもフォルダが含まれていないようです。
どんな助けでも大歓迎です。