2015-01-30 4 views
1

В поисковом окне пользователь может щелкнуть правой кнопкой мыши/«открыть с» и просмотреть список приложений, которые можно использовать для открытия файла.OSX: программно получить список приложений для файла

Как я могу получить этот список приложений программным путем?

ObjC или Python предпочли, но также любопытно, есть ли утилита командной строки, которая предоставляет эту функциональность.

ответ

1
NSArray *applicationURLs = CFBridgingRelease(LSCopyApplicationURLsForURL((__bridge CFURLRef)fileURL, kLSRolesAll)); 
NSLog(@"applicationURLs %@", applicationURLs); 

// Выходные данные

applicationURLs (
    "file:///Applications/calibre.app/", 
    "file:///Applications/Archiver.app/", 
    "file:///Applications/Pacifist.app/", 
    "file:///System/Library/CoreServices/Archive%20Utility.app/" 
) 

Для приложения по умолчанию:

CFURLRef defaultApplicationForURL = NULL; 
    LSGetApplicationForURL((__bridge CFURLRef)fileURL, kLSRolesAll, NULL, &defaultApplicationForURL); 
    NSLog(@"deafultApplicationForURL %@", defaultApplicationForURL); 

// Выходные данные

deafultApplicationForURL file:///System/Library/CoreServices/Archive%20Utility.app/ 
Смежные вопросы