Откуда взялась икона? - PullRequest
1 голос
/ 17 июля 2010

Существует ли инструмент Unix, в который я могу передать файл, и он скажет мне, откуда появляется значок для файла?

То, что я ищу, выглядит примерно так:

$ WhoProvidedIcon /Path/To/file.myex

UTI: com.myapplication.document

PLIST: /path/to/myapplication.app/Contents/Info.plist

ЗНАЧОК: /path/to/myapplication.app/Contents/Resources/BaseDoc.icns

Ответы [ 3 ]

2 голосов
/ 17 июля 2010

Значки для большинства приложений в Mac OSX хранятся в комплекте приложений. Если вы щелкните правой кнопкой мыши на .app и затем выберите Show Package Contents, а затем перейдите к Contents -> Resources, вы увидите значок там.

1 голос
/ 21 июля 2010

Существует как минимум три разных места, из которых ОС предоставит значок.

В одной ситуации NSWorkspace может помочь определить местоположение:

NSString* uti = [ws typeOfFile:@"/Users/egorr/Desktop/file.vwx" error:&error];
NSLog( @"UTI: %@", uti );
NSLog( @"UTI localized description: %@", [ws localizedDescriptionForType:uti] );
NSLog( @"UTI error description: %@",[error localizedDescription] );
NSURL* utiDeclarationURL = (NSURL*)UTTypeCopyDeclaringBundleURL( (CFStringRef)uti );
NSLog( @"UTI declaration URL: %@", utiDeclarationURL );
NSDictionary* utiDeclaration = (NSDictionary*)UTTypeCopyDeclaration( (CFStringRef)uti );
NSLog( @"UTI declaration: %@", utiDeclaration );

Это не совсем даст путь к значку, но он получит приложение, из которогообъявление пришло для UTI.

Значок также может быть предоставлен из плагина Quick Look, и выход из qlmanage может быть использован для определения, так ли это.

Пользователь может, вВ окне «Информация» программы Finder установите приложение, которое они предпочитают, для всех файлов данного «типа».Например, можно установить типы текстовых файлов, которые всегда открываются в TextMate.Приложение TextMate предоставляет настраиваемые значки файлов для всех типов файлов, которые оно может сохранять. После внесения этого изменения в окнах получения информации Finder все файлы этого типа будут иметь значок, предоставленный TextMate и зарегистрированный в UTI.Чтобы определить, так ли это, нужно взглянуть на базу данных служб запуска - lsregister -dump

0 голосов
/ 17 июля 2010

Я не знаю каких-либо конкретных инструментов, которые предоставляют эту информацию. Однако, похоже, у вас есть перекрывающиеся расширения. Если в Finder.app отображается значок для файла, вы можете просто просмотреть информационное окно для файла и посмотреть, какое приложение указано в списке, чтобы открыть документ по умолчанию. Затем посмотрите на файл .plist для этого приложения, чтобы узнать, использует ли оно ваше расширение. В информационном окне также должно быть указано, что это за документ, который может быть полезен, если приложение, предоставляющее значок, было удалено или иным образом не указано в списке по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...