Obtenir un Uniform Type Identifier pour une extension donnée
-
19-09-2019 - |
Question
Je suis en train de trouver un moyen à Cocoa pour traduire à partir des extensions de fichier à Identifiers type uniforme. Autrement dit, je veux trouver un moyen de faire ceci:
".jpg" => "public.jpeg"
".html" => "public.html"
".ttf"=> "public.truetype-font"
Je l'ai cherché sur la documentation NSWorkspace mais n'a pas pu trouver quoi que ce soit. Le plus proche que je pouvais obtenir était:
- (NSImage *)iconForFileType:(NSString *)fileType
qui retourne l'icône pour une extension de fichier, et
– (NSString *)preferredFilenameExtensionForType:(NSString *)typeName
qui fait exactement le contraire de ce que je suis en train de faire. Est-ce que vous savez comment faire?
J'espère vraiment que je ne dois pas vérifier beaucoup d'extensions à la main.
Merci d'avance.
La solution
Je avais besoin ce il y a une semaine:
NSString * UTI = (NSString *)UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension,
(CFStringRef)[myFilePath pathExtension],
NULL);
Si j'exécuter sur les extensions @ "php", @ "jpg", @ "html" et @ "TTF", il affiche:
public.php-script
public.jpeg
public.html
public.truetype-ttf-font
Autres conseils
Vous pouvez utiliser le Terminal et appeler mdls qui vous donne toutes sortes d'informations sur un certain type de fichier, y compris les infections urinaires.
mdls /myPath/to/myFile.ext
mdls ensuite vous montrer la IVU associée à kMDItemContentTypeTree (Il est également possible d'appeler mdls à partir de votre application Cocoa BTW).