xattr -l
ダウンロードフォルダー内のアイテムを実行すると、次のようなフィールドが表示されます。
com.apple.metadata:kMDItemDownloadedDate:
00000000 62 70 6C 69 73 74 30 30 A1 01 33 41 B4 83 4D BF |bplist00..3A..M.|
00000010 4C 4F E3 08 0A 00 00 00 00 00 00 01 01 00 00 00 |LO..............|
00000020 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 |................|
00000030 00 00 00 00 13 |.....|
00000035
これはバイナリplistです。HexFiendを使用してこれらのバイトを含むファイルを作成し(はい、手動で入力しました;雑誌からアセンブラーコードをAppleに入力するように過去から爆発します] [GS)、それを.plistファイルとして保存し、開きましたTextWranglerのファイルと、次の未コンパイルのxmlを取得しました。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
<date>2011-11-28T05:03:59Z</date>
</array>
</plist>
つまり、Appleは日付をコンパイル済みXMLに保存しているように見えますが、プレーンテキストは機能しているようです。
つまり、ファイルの変更日を文字列形式で取得できる場合、コマンドxattr -w com.apple.metadata:kMDItemDownloadedDate "2012-02-19 16:34:47 +0000" file
を実行して「ダウンロード日」を変更できます。「ダウンロード日」は、実際に追加された日付ではなく、実際にソートされたフィールドのように見えます。
最後に、(未使用)kMDItemDateAdded
フィールドを追加してもエラーは発生しませんでした。これは、この記事で学んだxattr
ように、使用済みまたは未使用のメタデータフィールドを喜んで設定するためです。
それが答えの中核です。AppleScriptを作成して各ファイルの変更日を取得し、kMDItemDownloadedDate
設定されているかどうかを確認し、設定されていない場合はkMDItemDownloadedDateを変更日に設定しますが、回答のコアを投稿したかったのです。