我正在尝试创建一个Spotlight查询,用于在文件路径中搜索字符串(我希望它在文件名中包含,或者包含任何文件夹的名称)。< / p>
NSPredicate *predicateTemplate = [NSPredicate predicateWithFormat: @"kMDItemPath like[wcd] $SEARCH";
[query setPredicate:
[predicateTemplate predicateWithSubstitutionVariables:
[NSDictionary dictionaryWithObject:searchingFor forKey:@"SEARCH"]
]
];
[query startQuery];
这总是返回0结果,即使是以下结果:
NSPredicate *predicateTemplate = [NSPredicate predicateWithFormat: @"kMDItemDisplayName in[wcd] $SEARCH";
返回1个或多个结果。我在MacOS X 10.5.8上测试它。
答案 0 :(得分:9)
说明文件:
<强> kMDItemPath 强>
文件的完整路径。可以检索此属性的此值,但不能在查询中使用或对搜索结果进行排序。
这意味着属性kMDItemPath
只能与MDItem或NSMetadataItem一起使用,以检索已找到项目的路径。您不能在指定用于查找文件的查询谓词中将其与MDQuery或NSMetadataQuery一起使用。