Ich versuche, einen Weg in Cocoa zu finden, um von Dateierweiterungen in Uniform Type Identifiers zu übersetzen. Das heißt, möchte ich dies einen Weg finden, zu tun:Ermitteln eines einheitlichen Typenbezeichners für eine angegebene Erweiterung
".jpg" => "public.jpeg"
".html" => "public.html"
".ttf"=> "public.truetype-font"
Ich habe auf dem NSWorkspace docs gesucht, aber nichts gefunden. Der nächste könnte ich war:
- (NSImage *)iconForFileType:(NSString *)fileType
, die das Symbol für eine Dateierweiterung zurückgibt, und
– (NSString *)preferredFilenameExtensionForType:(NSString *)typeName
, das genau das Gegenteil von dem, was ich versuche zu tun. Kennt jemand von euch das?
Ich hoffe wirklich, ich muss nicht für viele Erweiterungen von Hand überprüfen.
Vielen Dank im Voraus.
Vergessen Sie nicht, dass Sie, weil der Funktionsname 'Create' hat, dafür verantwortlich sind, das Objekt freizugeben. – Alex
Danke! Es funktionierte. Ich hatte anfangs einige Probleme, aber es war, weil ich Whitespace- und Newline-Zeichen aus den Pfadzeichenfolgen nicht zuschneiden. (Ich lese sie aus einem Befehlszeilenprogramm.) –
Ich brauchte das gerade heute. :-) Es ist noch sauberer, wenn Sie es wie folgt umhüllen: 'NSString * uti = [NSMakeCollectable (UTTypeCreatePreferredIdentifierForTag (KUTTagClassFilenameExtension, (CFStringRef) [myFilePath pathExtension], NULL)) Autorelease];' –