4

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

2 ответа2

4

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

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

Используя Terminal, создайте тестовый файл, назвав его «test.txt»

System:~ user$ touch test.txt

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

 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.

0

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .