任意のファイルのカスタム メタデータ属性を設定 (および取得) できるようにしたいと考えています。
これを行う最善の方法は何ですか?
ありがとう
OpenMetaフレームワークは、拡張属性を使用して OS X ファイルにメタデータを追加するための事実上のサードパーティ標準です。多くのサードパーティ製アプリケーションで使用されています。
これは、拡張属性の仕事のように聞こえます。xattrを使用してコマンドラインから取得および設定でき、getxattrおよびsetxattrを使用してプログラムから取得および設定できます。
ただし、拡張属性は (少なくとも一般的には) Spotlight によってインデックス付けされません。これに対する私が知っている唯一の例外は、「com.apple.metadata:kMDItemFinderComment」属性です。これには、実際のインデックス可能なコメントを含むバイナリ形式の plist が含まれている必要があります (@PurplePilot の回答を参照)。 このページは、スポットライトが「com.apple.metadata:」で始まる他の xattrs をインデックス化すると主張していますが、私はそれを機能させていません。
ファイルの「ファインダーコメント」をプログラムで設定したい場合(@PurplePilotの回答を参照)、これを試してください:
1) コメントを含む通常の xml plist ファイルを作成します。
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<string>My Custom Comment</string>
</plist>
2) plist を受け入れられたバイナリ形式に変換します。
plutil -convert binary1 my_custom_comment.plist
3) を使用しxattrて、kMDItemFinderComment メタデータを設定します。
xattr -wx "com.apple.metadata:kMDItemFinderComment" "`xxd -ps my_custom_comment.plist`" MyFile
コメントがそこにあり、正しいバイナリ形式であることがわかりますxattr -l MyFileが、何らかの理由で、Finder は (少なくとも私にとっては) [コメント] 列にそれを表示しません。
を使用してスポットライト データベースを検索するmdfind "My Custom Comment"と、このコメントを含むすべてのファイルが返されます。
ファインダでファイルが選択されているときに右クリックして情報、または cmd + i を押すと、情報パネルが開き、Spotlight で参照されるデータを上部に追加できます。スポットライト コメントと呼ばれます。これは、ディレクトリでも行うことができます。それが最善の方法かどうかはわかりませんが、それが私が知っている唯一の方法です。