In che modo Mac OS tiene traccia dei file spostati?

4

Un'applicazione che stavo usando aveva un file .dockset memorizzato nella mia home directory. Ho spostato questo file e l'applicazione ha aggiornato automaticamente la posizione del file. Ho notato un effetto simile quando sposti file che sto attualmente modificando in app come Xcode, TextEdit, BBEdit, Anteprima, iWork, ecc.

In che modo Mac OS tiene traccia di questi movimenti di file?

    
posta Alexander 03.04.2014 - 03:10
fonte

2 risposte

2

Da un punto di vista più alto (in opposizione all'implementazione di basso livello) questo è probabilmente correlato a Funzionalità dei segnalibri di NSURL .

A bookmark provides a persistent reference to a file-system resource. When you resolve a bookmark, you obtain a URL to the resource’s current location. A bookmark’s association with a file-system resource (typically a file or folder) usually continues to work if the user moves or renames the resource, or if the user relaunches your app or restarts the system.

    
risposta data 03.04.2014 - 13:44
fonte
1

La maggior parte delle app non usa i segnalibri (citati da Matthieu) per questo scopo, perché i segnalibri sono pensati per localizzare un file dopo che l'app è stata interrotta in mezzo), ma piuttosto mantengono il file aperto durante l'esecuzione dell'app, o fare riferimento al file usando il suo ID file (aka CNID o objID), o semplicemente usando un Oggetto NSURL che tiene traccia del file.

Il segreto di questo funzionamento è che i volumi HFS (+) assegnano a ogni file e cartella un numero univoco (il CNID), e quindi anche se il file viene rinominato o spostato, può essere nuovamente cercato da quel numero. I segnalibri utilizzano anche questo numero memorizzandolo per questo scopo.

Questo significa anche che se si posiziona il file su un file system che non supporta ID file, ad es. su un volume di rete SMB o su un disco formattato FAT, la rinominazione e lo spostamento di tali file potrebbero NON essere rilevati da tali app, perché in questo caso non esiste un meccanismo di tracciamento alternativo.

Vedi anche QA1113 tecnico di Apple: la /.vol/ dir e volFS .

APFS, il nuovo formato di volume di Apple, supporta anche gli ID di file, BTW.

    
risposta data 20.07.2017 - 18:57
fonte

Leggi altre domande sui tag