Quand je cours xattr -l
sur les éléments de mon dossier Téléchargements, j'obtiens un champ qui ressemble à quelque chose comme ceci :
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
C'est un plist binaire. Lorsque j'utilise HexFiend pour créer un fichier avec ces octets (oui, je les ai saisis manuellement ; c'est comme si j'entrais le code assembleur d'un magazine dans mon Apple ][GS]), puis que je l'enregistre en tant que fichier .plist, j'ai ouvert le fichier dans TextWrangler et obtenu le xml non compilé suivant :
<?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>
Cela dit, si Apple semble stocker les dates en XML compilé, le texte brut semble fonctionner.
En d'autres termes, si vous pouvez obtenir la date de modification du fichier sous la forme d'une chaîne, vous pouvez exécuter la commande suivante xattr -w com.apple.metadata:kMDItemDownloadedDate "2012-02-19 16:34:47 +0000" file
pour modifier la "date de téléchargement", qui semble être le champ sur lequel le tri est effectué, et non la date réelle d'ajout.
Enfin, vous n'avez pas eu d'erreur lors de l'ajout de l'élément (inutilisé) kMDItemDateAdded
car, comme je l'ai appris dans cet article , xattr
se fera un plaisir de définir le champ de métadonnées que vous souhaitez, qu'il soit utilisé ou non.
C'est le cœur de la réponse. Je vais travailler sur l'écriture d'un AppleScript pour obtenir la date de modification de chaque fichier, vérifier si les fichiers sont modifiés. kMDItemDownloadedDate
est défini, et s'il ne l'est pas, définir kMDItemDownloadedDate à la date modifiée, mais je voulais que le cœur de la réponse soit affiché.