Где Mac OS X хранит ассоциации файлов (на файл)

Когда я открываю информацию о файле и изменяю приложение, ответственное за тот файл, где это переопределение хранится в системе?

4
задан 31.10.2011, 03:13

2 ответа

Я не уверен в Mac OS X, но Mac OS (т.е. Классик) раньше хранил это в ветви ресурсов каждого файла с двумя сведениями: код типа и код создателя. Оба были четырехбайтовыми последовательностями и таким образом обычно представлялись как четыре символьных строки. Код типа определил тип файла (например, текст для текстового файла, APPL для приложения), в то время как код создателя определяет приложение, которое создало файл (например, ttxt для SimpleText или MSWD для Microsoft Word). Таким образом файл, созданный SimpleText, открылся бы в SimpleText по умолчанию, все еще будучи идентифицированным как текстовый файл и поэтому совместимый с Microsoft Word, должны Вы принимать решение вручную открыть его с Word.

Snow Leopard больше не обращает внимания на тип и коды создателя, заменив их UTIs, которые напоминают о типах MIME, хотя более гибкий, и могут использоваться для определения программы по умолчанию, а также определения, какие программы совместимы с данным файлом, но я не уверен, как сделаны отдельные переопределения.

0
ответ дан 07.12.2019, 20:45

Данные хранятся в ветви ресурсов файла, который хранится как расширенный атрибут com.apple.ResourceFork.

Возьмите следующее в качестве примера -

Используя Терминал, создайте тестовый файл, назвав это "test.txt"

System:~ user$ touch test.txt

По умолчанию файлы расширения "txt" открыты с TextEdit. (Если Вы не изменили значение по умолчанию в масштабе всей системы.) В Средстве поиска, измените ассоциацию на что-то еще. Вернитесь к Терминалу..

 System:~ user$ ls -l@ test.txt

 -rw-r--r--@ 1 user  staff  0 Sep 29 11:21 test.txt
         com.apple.ResourceFork 1338

@ символ обозначает, что файл расширил атрибуты, и ls -l@ перечисляет атрибуты как часть длинного формата.

Если Вам установили Инструменты Разработчика, можно использовать DeRez для осмотра ветви ресурсов, и Вы будете видеть путь приложения, которое Вы выбрали в ветвлении.

Это архаично, удержано от использования и могло (справедливо) быть названо взломом..., но, учитывая, что система идентификатора UTI и пакета является "неполной", это - то, что использует Apple.

4
ответ дан 07.12.2019, 20:45

Теги

Похожие вопросы