¿Cómo hace Mac OS para realizar un seguimiento de los archivos movidos?

4

Una aplicación que estaba usando tenía un archivo .dockset almacenado en mi directorio de inicio. Moví este archivo y la aplicación actualizó automáticamente la ubicación del archivo. Noté un efecto similar cuando muevo archivos que actualmente estoy editando en aplicaciones como Xcode, TextEdit, BBEdit, Preview, iWork, etc.

¿Cómo realiza Mac OS un seguimiento de estos movimientos de archivos?

    
pregunta Alexander 03.04.2014 - 03:10

2 respuestas

2

Desde un punto de vista más alto (en oposición a la implementación de bajo nivel), probablemente esté relacionado con Capacidades de marcadores de NSURL .

  

Un marcador proporciona una referencia persistente a un recurso del sistema de archivos. Cuando resuelve un marcador, obtiene una URL a la ubicación actual del recurso. La asociación de un marcador con un recurso del sistema de archivos (generalmente un archivo o carpeta) generalmente funciona si el usuario mueve o renombra el recurso, o si el usuario reinicia su aplicación o reinicia el sistema.

    
respondido por el Matthieu Riegler 03.04.2014 - 13:44
1

La mayoría de las aplicaciones no usan los Marcadores (mencionados por Matthieu) para este propósito, ya que los Marcadores tienen la intención de ubicar un archivo después de que la aplicación se haya cerrado entre ellos), sino que mantienen el archivo abierto mientras se ejecuta la aplicación. o haga referencia al archivo usando su ID de archivo (también conocido como CNID u objID), o simplemente usando un objeto NSURL que realiza un seguimiento del archivo.

El secreto de este trabajo es que los volúmenes HFS (+) asignan a cada archivo y carpeta un número único (el CNID), por lo que incluso si se cambia el nombre o se mueve el archivo, ese número puede buscarlo nuevamente. Los marcadores también utilizan este número almacenándolo para este propósito.

Esto también significa que si coloca su archivo en un sistema de archivos que no admite ID de archivo, por ejemplo. en un volumen de red SMB o en un disco con formato FAT, esas aplicaciones NO pueden detectar el cambio de nombre y el movimiento de dichos archivos, ya que en este caso no hay un mecanismo de seguimiento alternativo.

Consulte también QA1113 técnico de Apple: The /.vol/ dir y volFS .

APFS, el nuevo formato de volumen de Apple, también admite ID de archivo, por cierto.

    
respondido por el Thomas Tempelmann 20.07.2017 - 18:57

Lea otras preguntas en las etiquetas