Question

Is there an easy way (or any way) to see if a user typed file extension in a Save panel is a valid/registered extension/UTI on his system?

Was it helpful?

Solution

You can use the "Launch Services" function LSGetApplicationForInfo() to check if there is an application for opening items with the given extension. Example:

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;
}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top