Quando selezioni un singolo file, apri una finestra Ottieni informazioni e scegli un'applicazione diversa e non predefinita, questa associazione di Servizi di avvio viene salvata nel fork delle risorse del file stesso, in 'usro'
(Ignora utente) risorsa. Per quanto ne so, il formato di questa risorsa è privato, determinato da Apple, ed è soggetto a modifiche. (Tutti i caratteri minuscoli nel nome OSType forniscono un indizio, poiché Apple riserva il tipo di file, i codici autore e i tipi di risorse con tutti i caratteri minuscoli. Per esempio, 'icns'
(Icon Suite) tipo di risorsa, 'ttxt'
(originariamente da Teach Text , ma ora è il codice creatore (CFBundleSignature) di TextEdit.app), ecc.).
Questa risorsa viene creata utilizzando le funzioni di Gestione risorse per modificare il fork del file, che a sua volta aggiorna la data di modifica del file.
Un file di esempio su cui ho appena provato questa procedura è mostrato nell'immagine qui sotto, aperto in Resorcerer. (Nota speciale: noterai nella colonna di sinistra che ci sono 2 tipi elencati: 'TEXT'
e 'usro'
. In effetti c'è solo una singola voce 'usro'
, Resorcerer sta mostrando che c'è una voce di risorsa 'TEXT'
perché nota che il contenuto nel fork dei dati del file è basato su testo (un file di intestazione del codice sorgente) e pertanto fornisce un comodo accesso ad esso). La seconda immagine mostra il contenuto di questa risorsa, che in pratica contiene un percorso per l'applicazione di destinazione che ho scelto.
Poiché questa risorsa di sovrascrittura utente 'usro'
viene salvata come parte del file stesso, ciò spiega perché Guida alla programmazione dei servizi di lancio: la scelta della preferenza di rilegatura per un file afferma quanto segue:
Note: Explicit binding preferences for individual items are not user-specific but systemwide—that is, they continue to apply to the given item on that same computer, even if a different user logs in.
Ora, per fare un passo avanti. Se fai clic sul pulsante Change All
per fare in modo che questo sia un override globale, Launch Services rimuoverà la voce 'usro'
resource e creerà invece un binding globale che è memorizzato in com.apple.LaunchServices.plist (preferenze per utente) file. La rimozione della voce 'usro'
viene eseguita utilizzando le funzioni di Gestione risorse, che aggiorneranno la data di modifica del file. Si noti che mentre rimuove la risorsa 'usro'
, potrebbe non eliminare l'intero fork delle risorse. Nella maggior parte dei casi, restano 286 byte nel fork delle risorse, che in pratica è la quantità minima di spazio occupata dall'intestazione della risorsa e dalla mappa delle risorse.