检查建议的文件扩展名是否在系统上是有效/已注册的文件扩展名

时间:2013-11-09 08:10:27

标签: objective-c macos cocoa uti

是否有一种简单的方法(或任何方式)来查看用户在“保存”面板中键入的文件扩展名是否是其系统上的有效/已注册扩展名/ UTI?

1 个答案:

答案 0 :(得分:3)

您可以使用“启动服务”功能LSGetApplicationForInfo() 检查是否有申请打开具有给定扩展名的项目。 例如:

NSString *extension = @"txt";

BOOL extensionIsKnown;
CFURLRef app;
OSStatus status = LSGetApplicationForInfo(kLSUnknownType, kLSUnknownCreator,
                        (__bridge CFStringRef)(extension), kLSRolesAll,
                        NULL, &app);
if (status == noErr) {
    extensionIsKnown = YES;
    CFRelease(app);
} else {
    extensionIsKnown = NO;
}