python - 操作系统: programmatically get list of applications for a file

标签 python objective-c macos command-line

在查找器中,用户可以右键单击/“打开方式”并查看可用于打开文件的应用程序列表。

如何以编程方式获取此应用程序列表?

首选 ObjC 或 Python,但也好奇是否有公开此功能的命令行实用程序。

最佳答案

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/

关于python - 操作系统: programmatically get list of applications for a file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28243720/

相关文章:

python - QTableView 编辑模式的问题

python - 尽管有 Nat 网关,但使用 Python 的 Lambda 函数请求仍超时

objective-c - 以编程方式启用/禁用 iOS 锁定

iPhone游戏开发,用文件或sqlite保存状态?

python - Tkinter 干扰 OSX 上的 pygame(中止陷阱 6)

python - 将 pandas 时间戳与日期时间进行比较

python - pandas.concat 和 numpy.append 的大数据集内存错误

ios 8 + LiveSDK 身份验证使我的应用程序崩溃

cocoa - 如何在 OS X Lion 上获取用户的邮件地址?

macos - 如何在 mac 上编译 GCC,以便编译后的可执行文件可以在早期版本的 OS X 上运行?