Uzyskanie jednolitego identyfikatora typu dla danego rozszerzenia
Próbuję znaleźć w Cocoa sposób na przetłumaczenie z rozszerzeń plików na jednolite identyfikatory typów. To znaczy, chcę znaleźć jakiś sposób na zrobienie tego:
".jpg" => "public.jpeg"
".html" => "public.html"
".ttf"=> "public.truetype-font"
Przeszukałem dokumenty NSWorkspace, ale nic nie znalazłem. Najbliżej mi było:
- (NSImage *)iconForFileType:(NSString *)fileType
, który zwraca ikonę dla rozszerzenia pliku i
– (NSString *)preferredFilenameExtensionForType:(NSString *)typeName
To robi dokładnie odwrotnie niż to, co próbuję zrobić. Czy ktoś z was wie jak to zrobić?
Naprawdę mam nadzieję, że nie będę musiał sprawdzać wiele rozszerzeń ręcznie.
Z góry dzięki. 18
Author: Marco Aurélio, 2009-10-02
2 answers
Potrzebowałem tego jakiś tydzień temu:
NSString * UTI = (NSString *)UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension,
(CFStringRef)[myFilePath pathExtension],
NULL);
Jeśli uruchamiam to na rozszerzeniach @ "php", @ "jpg", @ "html" i @ "TTF", wyświetla:
public.php-script
public.jpeg
public.html
public.truetype-ttf-font
39
Author: Dave DeLong,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-10-01 20:42:03
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-10-01 20:42:03
Możesz użyć terminala i wywołać mdls, który daje wszystkie rodzaje informacji na temat określonego typu pliku, w tym UTIs.
mdls /myPath/to/myFile.ext
Mdls pokaże powiązane UTi w kMDItemContentTypeTree (możliwe jest również wywołanie mdls z poziomu aplikacji Cocoa btw).
11
Author: auco,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-01-01 15:17:42
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-01-01 15:17:42