Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

No results in Spotlight in searches against kMDItemPath

I am trying to create a Spotlight query that searches for a string in the path of a file (I would like it to match in either the name of the file or the name of any of the folders is contained in).

NSPredicate *predicateTemplate = [NSPredicate predicateWithFormat: @"kMDItemPath like[wcd] $SEARCH";
[query setPredicate: 
    [predicateTemplate predicateWithSubstitutionVariables:
        [NSDictionary dictionaryWithObject:searchingFor forKey:@"SEARCH"]
    ]
];
[query startQuery];

This always returns 0 results, even if the following one:

NSPredicate *predicateTemplate = [NSPredicate predicateWithFormat: @"kMDItemDisplayName in[wcd] $SEARCH";

returns 1 or more results. I am testing this on MacOS X 10.5.8.

like image 703
Miguel Ángel Friginal Avatar asked Aug 27 '09 14:08

Miguel Ángel Friginal


1 Answers

Quoth the documentation:

kMDItemPath

Complete path to the file. This value of this attribute can be retrieved, but can't be used in a query or to sort search results.

Link

That means that the attribute kMDItemPath can only be used with a MDItem or NSMetadataItem to retrieve the path for an item already found. You cannot use it with an MDQuery or an NSMetadataQuery within the query predicate you specify to find files.

like image 166
kperryua Avatar answered Nov 11 '22 07:11

kperryua