Для OSX, ключ библиотеки для сбора информации о спускаемых приложениях Launch Services (см от Apple Launch Services Programming Guide), который даст вам информацию о приложении, таких как расслоение ид, типы файлов, которые он принимает, и т.д.
Для того, чтобы найти все исполняемые файлы на компьютере, вы захотите использовать Spotlight в той или иной форме (либо API, либо вызывая mdfind
).
Пример использования версии командной строки:
mdfind 'kMDItemKind=Application'
возвращает список всех путей применения.
Использование аналогичного термина в API прожектора приведет к соответствующему списку, из которого вы можете либо открыть основной комплект, используя NSBundle
, либо использовать Launch Services для получения информации об этом приложении.
У меня нет времени, чтобы сделать тщательное испытание, но основной код будет:
NSMetadataQuery *query = [[NSMetadataQuery alloc] init];
[query setSearchScopes: @[@"/Applications"]]; // if you want to isolate to Applications
NSPredicate *pred = [NSPredicate predicateWithFormat:@"kMDItemKind == 'Application'"];
// Register for NSMetadataQueryDidFinishGatheringNotification here because you need that to
// know when the query has completed
[query setPredicate:pred];
[query startQuery];
http://stackoverflow.com/questions/3444326/list-all-applications-output ий текст файл –
Вот решение: [как получить все установленные applicaitons (StackOverflow)] [1] [1]: http://stackoverflow.com/questions/31700347/how- to-get-all-installed-applications-with-objective-c-in-osx/31701135 # 31701135 –
@VikasBansal - ключевое различие между решением, на которое вы указываете, и t он один, который я предусмотрел, - это то, что мое приложение найдет приложения на всей машине (если вы удалите строку области видимости) и будет возвращать только фактические приложения, а не другие файлы в каталоге '/ Applications'. – gaige