5

我正在尝试创建一个在文件路径中搜索字符串的 Spotlight 查询(我希望它与文件名或包含的任何文件夹的名称相匹配)。

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 上对此进行测试。

4

1 回答 1

11

引用文档:

kMDItemPath

文件的完整路径。可以检索此属性的此值,但不能用于查询或对搜索结果进行排序。

关联

这意味着该属性kMDItemPath只能与 MDItem 或 NSMetadataItem 一起使用来检索已找到项目的路径。您不能在指定的查询谓词中将其与 MDQuery 或 NSMetadataQuery 一起使用以查找文件。

于 2009-08-27T15:56:02.257 回答