MacOSX - расширение файла ассоциируется с приложением - программно

Я пытаюсь, чтобы моя программа автоматически ассоциировала определенные расширения файлов, которые нужно открыть, но я не уверен, как это сделать в MacOSX. Я не спрашиваю, как связать программу с расширением файла в графическом интерфейсе, я хочу иметь возможность запрограммировать его в моей программе.

Ответы

Ответ 1

Чтобы зарегистрировать новое расширение файла в приложении, используйте следующую команду по умолчанию.
Замените PUT_FILE_EXTENSION_HERE_WITHOUT_PERIOD с расширением файла i.e.txt.
Замените org.category.program с именем com/org вашей программы, то есть com.apple.itunes.

$ defaults write com.apple.LaunchServices LSHandlers -array-add \
"<dict><key>LSHandlerContentTag</key>
<string>PUT_FILE_EXTENSION_HERE_WITHOUT_PERIOD</string><key>LSHandlerContentTagClass</key>
<string>public.filename-extension</string><key>LSHandlerRoleAll</key>
<string>org.category.program</string></dict>"


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

Вы можете выполнить приведенную ниже команду, чтобы перезапустить службы запуска или просто перезагрузить компьютер. Ввод/выход из системы также может сделать это, но я не пробовал.

$ /System/Library/Frameworks/CoreServices.framework/Versions/A/Framework/LaunchServices.framework/Versions/A/Support/lsregister -kill -domain local -domain system -domain user