2010-06-03 2 views
13

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

+0

Этот вопрос относится к нашему сайту-партнеру, переполнение стека. он вскоре будет перенесен. –

ответ

11

Чтобы зарегистрировать новое расширение файла с приложением используйте команду следующие значения по умолчанию.
Заменить 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 
7
+0

Плохая ссылка. Предположительно, теперь это куда пойти: https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html#//apple_ref/doc/uid/20001431-101685 –

-1

Я описал все это в деталях на https://moosystems.com/articles/8-double-click-on-files-in-finder-to-open-them-in-your-python-and-tk-application.html.

Это связано с объединением вашего приложения через py2app, добавлением определенного ключа в ваш файл Info.plist и установкой обработчиков событий в вашем приложении.

+0

Этот пост это приложение Python (вложение в него как приложение для Mac). Он может включать в себя необходимую информацию, но, похоже, она не царапает зуд. –

+0

Команда по умолчанию, упомянутая в принятом ответе выше, работает нормально, но вам нужно будет позвонить это после установки вашего приложения, а привязка вашего приложения к суффиксу файла, как описано в моей статье, автоматически управляет этим при каждом копировании приложения на макинтош Но да, моя статья описывает более крупный процесс сборки Python. С другой стороны, процесс будет таким же для любого приложения, которое вы создаете для macOS. –

Смежные вопросы