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.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With