Modifier les métadonnées Spotlight pour un fichier en dehors de l'importateur Spotlight?
Question
Je souhaite modifier un attribut de métadonnées Spotlight d'un fichier dans mon application (c'est-à-dire pas dans un importateur Spotlight), mais je ne trouve aucune API pour le faire. C'est possible? Des pointeurs vers les documents pertinents seraient l’idéal.
Au cas où cela vous aiderait, voici mon cas d'utilisation:
Je veux stocker une référence à un fichier chemin système dans un magasin de données de base. Idéalement, je devrais pouvoir trouver le fichier même si est déplacé, potentiellement à travers les volumes montés. Ma compréhension est que FSRef ou AliasRecord archivés ne feront pas l'affaire, car ils ne sont pas invariants par rapport aux mouvements montés les volumes. Donc, mon plan était de stocker une URL et aussi pour ajouter un UUID (également stocké dans le magasin de données) au fichier Spotlight métadonnées afin que je puisse effectuer une requête Spotlight pour cette UUID si l'URL ne pointe plus le fichier lorsque l'application retourne à recherchez le fichier.
La solution
Après des recherches approfondies, l'utilisation de Spotlight n'est pas la meilleure solution pour le cas d'utilisation. AliasRecord est un meilleur stockage persistant pour un fichier. Il suit automatiquement les mouvements / renommer / etc. Vous pouvez en savoir plus sur AliasRecords ici . Chris Hansen a écrit un wrapper Objective-C pour AliasRecords, BDAlias ??
. Il est actuellement disponible à partir du rentzsch.com