Collegamenti rigidi e giunzioni

Il file system NTFS supporta tre tipi di collegamenti di file: collegamenti rigidi, giunzioni e collegamenti simbolici. Questo articolo offre una panoramica dei collegamenti rigidi e delle giunzioni. Per informazioni sui collegamenti simbolici, vedere Creare collegamenti simbolici.

Un collegamento rigido è la rappresentazione del file system di un file in base al quale più di un percorso fa riferimento a un singolo file nello stesso volume. Per creare un collegamento rigido, usare la funzione CreateHardLinkA .

Tutte le modifiche apportate a un file hard-linked sono immediatamente visibili alle applicazioni che vi accedono tramite i collegamenti che vi fanno riferimento. Gli attributi del file si riflettono in ogni collegamento rigido a tale file e le modifiche apportate agli attributi del file vengono propagate a tutti i collegamenti rigidi. Tuttavia, le dimensioni della voce della directory e le informazioni sull'attributo del file vengono aggiornate visibilmente solo al collegamento tramite il quale è stata apportata la modifica. Ad esempio, se si cancella il flag di attributo di sola lettura su un particolare collegamento rigido in modo da poter eliminare il collegamento rigido e sono presenti più collegamenti rigidi al file, gli altri collegamenti rigidi visualizzano che l'attributo di sola lettura è ancora impostato, che non è true. Per ripristinare lo stato di sola lettura del file, è necessario impostare il flag di sola lettura nel file da uno dei collegamenti rigidi rimanenti.

Ad esempio, in un sistema in cui C: e D: sono unità locali ed Z: è un'unità di rete mappata a \\fred\share, i riferimenti seguenti sono consentiti come collegamento rigido:

  • C:\dira\ethel.txt collegato a C:\dirb\dirc\lucy.txt
  • D:\dir1\tinker.txt collegato a D:\dir2\dirx\bell.txt
  • C:\diry\bob.bak collegato a C:\dir2\mina.txt

Ciò è dovuto al fatto che tutti i collegamenti sono file nello stesso volume. I collegamenti rigidi non possono fare riferimento a directory, solo file e non possono fare riferimento a file in volumi diversi.

I riferimenti seguenti non sono consentiti:

  • C:\dira collegato a C:\dirb
  • C:\dira\ethel.txt collegato a D:\dirb\lucy.txt
  • C:\dira\ethel.txt collegato a Z:\dirb\lucy.txt

Per eliminare un collegamento rigido, usare la funzione DeleteFileA . È possibile eliminare collegamenti rigidi in qualsiasi ordine indipendentemente dall'ordine in cui vengono creati.

Giunzioni

Una giunzione (detta anche collegamento flessibile) differisce da un collegamento rigido in quanto gli oggetti di archiviazione a cui fa riferimento sono directory separate. Una giunzione può anche collegare directory che si trovano in volumi locali diversi nello stesso computer. In caso contrario, le giunzioni funzionano in modo identico ai collegamenti rigidi. Le giunzioni vengono implementate tramite reparse point.

Supponendo le stesse condizioni nella sezione Collegamenti rigidi, i riferimenti seguenti sono consentiti come giunzioni:

  • C:\dira collegato a C:\dirb\dirc
  • C:\dirx collegato a D:\diry

I riferimenti seguenti non sono consentiti perché fanno riferimento a volumi di rete mappati o fanno riferimento direttamente ai file:

  • C:\dira\one.txt collegato a C:\dirb\two.txt
  • C:\dir1 collegato a Z:\dir2

Vedi anche