Где Mac OS X хранит информацию об ассоциации файлов?

Я знаю, что есть панель системных настроек, чтобы вручную изменять ассоциации файлов в Mac OS X Leopard. Однако мне любопытно, где Leopard фактически хранит эту информацию?

ОБНОВЛЕНИЕ: как я уже сказал, меня не интересуют методы их изменения. Я хочу знать файл конфигурации или базу данных (например, реестр в Windows), где хранятся эти сопоставления.

Извините, этот вопрос старый, но ответ действительно неправильный.

Как упоминалось в указателе, ответ Дага Харриса является лишь частично правильным.

Файл базы данных служб запуска , в котором хранится вся информация для всех известных приложений и типов документов, которые они могут обрабатывать, находится в следующем местоположении:

Лев:

/private/var/folders/**/**/-Caches-/com.apple.LaunchServices-034501.csstore

Снежный барс:

/private/var/folders/**/**/-Caches-/com.apple.LaunchServices-025501.csstore

Leopard:

/Library/Caches/com.apple.LaunchServices-023501.csstore

Папка /private/var/folders/ где хранится «безопасная» кэш-память и временные папки для каждого пользователя. ** на пути, показанном выше, будет что-то вроде /dl/dlXWtS5WH9SNboPxxrDIyE+++TI/ или другой неясной последовательности символов, чтобы предотвратить угадывание.

Обратите внимание, что имя com.apple.LaunchServices-025501.csstore составлено из идентификатора пользователя ( -025 is 501 ), добавленного к -025 , который является уникальным для Snow Leopard. (В каждой версии OS X Apple имеет тенденцию изменять отличительный суффикс, используемый для предотвращения проблем совместимости между различными версиями OS X. Вы заметите, что Leopard используется -023 ). Лев использует -034 суффикс.

OS X использует систему «по умолчанию» – вот хорошая статья с большим количеством примеров. Файлы хранятся в ~ / Library / Preferences, но лучше всего манипулировать с помощью команды «defaults», а не напрямую редактировать plists.

Ассоциации файлов хранятся в домене com.apple.LaunchServices. Из приведенной выше ссылки вы можете увидеть список с помощью этой команды:

 defaults read com.apple.LaunchServices | grep -v LSBundleLocator 

Более подробную информацию о Launch Services можно найти в Руководстве по программированию запуска приложений Apple

Ответ @Doug Harris является лишь частично правильным. Система по умолчанию сохраняет ваши локальные дополнения или переопределения в ассоциациях файлов. Однако OS X поставляется с некоторыми стандартными системными ассоциациями.

Если вы запустите lsregister -dump вы увидите, что Launch Services вызывает CoreTypes и ассоциации, предоставляемые найденными приложениями.

 /System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Versions/Current/Support/lsregister -dump 

Я не исчерпывающе просматривал вывод. В этом дампе могут быть другие источники, но большое количество этих типов происходит из /System/Library/CoreServices/CoreTypes.bundle . Там может быть файл открытого текста или plist, где типы перечислены. Я полагаю, что ассоциации связаны с проверкой содержимого * .app в известных местах приложения. Вот где Launch Services понимает TextWrangler – это редактор для многочисленных типов файлов:

 -------------------------------------------------------------------------------- bundle id: 10928 path: /Applications/TextWrangler.app name: TextWrangler identifier: com.barebones.textwrangler (0x8000008d) ... library items: -------------------------------------------------------- claim id: 20216 name: TextWrangler text document rank: Default roles: Editor flags: relative-icon-path icon: Contents/Resources/TextWranglerTextDoc.icns bindings: .a, .asm, .asp, .bashrc, .c, .c++, .cc, .cfm, .conf, .cp, .cpp, .cshrc, .css, .cxx, .equ, .f, .f77, .for, .ftn, .h, .h++, .hpp, .htm, .html, .inc, .j, .java, .js, .jsp, .log, .m, .mm, .p, .pas, .pch, .pch++, .php, .php3, .pl, .plist, .plx, .pm, .ppu, .r, .rb, .rez, .rhtml, .rss, .s, .sql, .shtm, .shtml, .tcl, .tcshrc, .text, .txt, .wml, .xhtml, .xml, .xsl, .xslt, .yaml, 'TEXT' ... 

Очень просто! Просто, что это не в самом очевидном месте:

  • Щелкните правой кнопкой мыши файл, для которого вы хотите изменить ассоциацию, и выберите « Получить информацию » (или просто выберите и нажмите « Command + .
  • Перейдите к разделу « Открывается с » (вам может понадобиться щелкнуть стрелку рядом с ним, чтобы развернуть его) и выбрать другую программу из раскрывающегося списка.
  • Нажмите кнопку « Изменить все … », чтобы изменить эту ассоциацию файлов для всех файлов одного и того же расширения в вашей системе.

Введите описание изображения здесь

Вы также можете выйти и установить предварительную панель RCDefaultApp, чтобы изменить все ассоциации файлов в одном месте.

~/Library/Preferences/com.apple.LaunchServices.plist

  • Как удалить док в Mac OS X Leopard
  • Исправить разрешения для внешнего диска Mac OS X, используемого Time Machine?
  • Leopard Network Акции и просмотр ненадежны
  • Ядро Panic каждый раз, когда я открываю очередь печати
  • Как освободить память в Mac OS X?
  • OS X: Можно ли поместить обычный текст по умолчанию?
  • Установлен ли MySQL по умолчанию с OS X Leopard 10.5 или 10.6
  • Перенос брекетов между компьютерами Mac
  • Чистая установка Mac OS X 10.6 с использованием Upgrade DVD
  • Как добавить пользователя в группу из командной строки Mac OS X?
  • Давайте будем гением компьютера.