gpt4 book ai didi

macos - 检索可以在给定 URL 处打开文件的所有应用程序包标识符

转载 作者:行者123 更新时间:2023-12-03 17:13:57 24 4
gpt4 key购买 nike

如何检索可以在给定 URL 处打开文件的所有应用程序包 ID?就像如果给定 URL 处的文件是 .xml,我想获取可以打开 .xml 的所有应用程序包 ID 的数组。

最佳答案

您可以使用启动服务' LSCopyAllRoleHandlersForContentType() 获取有能力的应用程序的 bundle 标识符数组。

代码可能如下所示:

NSURL *fileURL = [[NSBundle mainBundle] URLForResource:@"sample"
withExtension:@"xml"];

NSString *utiType = nil;
NSError *error = nil;

BOOL success = [fileURL getResourceValue:&utiType
forKey:NSURLTypeIdentifierKey error:&error];

if (!success) {
NSLog(@"getResourceValue:forKey:error: returned error == %@", error);
}

NSArray *bundleIdentifiers = [(NSArray *)LSCopyAllRoleHandlersForContentType(
(CFStringRef)utiType, kLSRolesAll) autorelease];

NSLog(@"bundleIdentifiers == %@", bundleIdentifiers);

在最新版本的 OS X 中,启动服务是 CoreServices.framework 的一部分伞形框架。您可能需要在要调用LS*的类中#import它。函数,并将其添加到 Link Binary With Libraries目标的构建阶段。 (它在这里似乎工作正常,无需在 OS X 10.8 SDK 中链接)。

关于macos - 检索可以在给定 URL 处打开文件的所有应用程序包标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12796391/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com