Re: Type of NSData contents
Re: Type of NSData contents
- Subject: Re: Type of NSData contents
- From: Keary Suska <email@hidden>
- Date: Sat, 12 Jun 2010 08:28:13 -0600
On Jun 12, 2010, at 6:18 AM, Ben wrote:
> Given an NSData object, with no context as to what it might be, is it possible to find if it contains a document of recognised file type?
It is possible, but I suspect that you have to know what you are looking for. I.e., you must check the contents for various pattens that would identify the type, and you must have pre-knowledge of what those patterns are. There is no magic detection in the OS.
> I know this is possible for image files, by using the imageIO framework and doing the following:
>
> CGImageSourceRef imageSource = CGImageSourceCreateWithData(myNSDataObjectGoesHere, NULL);
> NSString *uti = (NSString *)CGImageSourceGetType(imageSource);
> NSString *extension = [[NSWorkspace sharedWorkspace] preferredFilenameExtensionForType:uti];
> CFRelease(imageSource);
> // Standard typed-in-mail-disclaimer here
Chances are, CGImageSourceGetType() is doing what I mention above, which is not too difficult since it only supports a fixed number of formats and clearly knows how to decode each one.
> I suppose I could take the long route of writing the data to disk, then using the NSWorkspace method -typeOfFile:error:, but that seems a bit heavy-handed.
Since there is no magic detection, this will not work. There are various APIs that you can use to check for certain types, including images, PDFs, XML, Plists, an RTF. You are likely on your own when it comes to app-specific formats.
HTH,
Keary Suska
Esoteritech, Inc.
"Demystifying technology for your home or business"
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden