プログラムが開く特定のファイル拡張子を自動的に関連付けるようにプログラムを作成しようとしていますが、MacOSXでそれを行う方法がわかりません。GUIでプログラムをファイル拡張子に関連付ける方法を尋ねているのではなく、プログラムにプログラムできるようにしたいのです。
4 に答える
新しいファイル拡張子をアプリケーションに登録するには、次のdefaultsコマンドを使用します。
PUT_FILE_EXTENSION_HERE_WITHOUT_PERIODをファイル拡張子(つまり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
CFBundleDocumentTypes Info.plistキーの説明については、次を参照してください。
-K
.appファイルを右クリックして[パッケージの内容を表示]を選択するとContents
、というフォルダーがあり、そのフォルダー内にというファイルとinfo.plist
というフォルダーがありますResources
(これらのいずれかが存在しない場合は、作成します)。彼ら)。ファイル拡張子.myfileextension
をプログラムに関連付け、その拡張子のファイルに「」というファイルにアイコンを含める場合は、ファイルをフォルダーicon.icns
にコピーし、タグの直前のファイルに次のコードを追加します。icon.icns
Resources
info.plist
</dict>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleTypeIconFile</key>
<string>icon.icns</string> <!-- change this -->
<key>CFBundleTypeExtensions</key>
<array>
<string>myfileextension</string> <!-- change this -->
</array>
<key>CFBundleTypeName</key>
<string>File extension description</string> <!-- change this -->
<key>LSHandlerRank</key>
<string>Owner</string>
</dict>
</array>
上記のコードでマークされている行は<!-- change this -->
、拡張機能に持たせたいプロパティに応じて変更する必要があります。フォルダicon.icns
に入れてファイル拡張子を付けたい名前に変更し、プログラムに関連付けるファイル拡張子(ドットなし)に変更し、次のように変更する必要があります。ファイル拡張子に付ける説明(たとえば、.docファイルの場合は「MicrosoftWordドキュメント」になります)。Resources
myfileextension
File extension description
また、ここで他の値の意味と、それらを変更する必要があるかどうかを確認できます。必要に応じて追加できる他の値もリストされています。
これには、py2appを介してアプリケーションをバンドルし、Info.plistファイルに特定のキーを追加し、アプリにイベントハンドラーをインストールすることが含まれます。