4 votes

Comment Mac OS garde-t-il la trace des fichiers déplacés ?

Une application que j'utilisais avait un .dockset stocké dans mon répertoire personnel. J'ai déplacé ce fichier, et l'application a automatiquement mis à jour l'emplacement du fichier. Je remarque un effet similaire lorsque je déplace des fichiers que je suis en train d'éditer dans des applications comme Xcode, TextEdit, BBEdit, Preview, iWork, etc.

Comment Mac OS garde-t-il la trace de ces mouvements de fichiers ?

4voto

zimbatm Points 2525

La plupart des applications n'utilisent pas les Signets (mentionnés par Matthieu) dans ce but, car les Signets sont destinés à localiser un fichier après que l'application ait été quittée entre-temps), mais plutôt à garder le fichier ouvert pendant que l'application fonctionne, ou à référencer le fichier en utilisant son ID de fichier (alias CNID ou objID), ou simplement en utilisant une balise Objet NSURL qui garde la trace du fichier.

Le secret de ce fonctionnement réside dans le fait que les volumes HFS(+) attribuent à chaque fichier et dossier un numéro unique (le CNID). Ainsi, même si le fichier est renommé ou déplacé, il peut être retrouvé grâce à ce numéro. Les signets font également usage de ce numéro en le stockant à cette fin.

Cela signifie également que si vous placez votre fichier sur un système de fichiers qui ne prend pas en charge les ID de fichier, par exemple sur un volume réseau SMB ou un disque formaté en FAT, le renommage et le déplacement de ces fichiers peuvent NE PAS être détectés par ces applications, car il n'existe pas de mécanisme de suivi alternatif dans ce cas.

Voir aussi QA1113 technique d'Apple : le répertoire /.vol/ et volFS .

APFS, le nouveau format de volume d'Apple, prend également en charge les identifiants de fichiers, BTW.

2voto

Matthieu Riegler Points 20160

D'un point de vue plus élevé (par opposition à la mise en œuvre de bas niveau), cela est probablement lié aux éléments suivants Les possibilités de signets de NSURL .

Un signet fournit une référence persistante à une ressource du système de fichiers. Lorsque vous résolvez un signet, vous obtenez une URL de l'emplacement actuel de la ressource. L'association d'un signet avec une ressource du système de fichiers (généralement un fichier ou un dossier) continue généralement de fonctionner si l'utilisateur déplace ou renomme la ressource, ou si l'utilisateur relance votre application ou redémarre le système.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X