Жесткие связи и соединения

Файловая система NTFS поддерживает три типа файловых ссылок: жесткие ссылки, соединения и символические ссылки. В этой статье представлен обзор жестких ссылок и связей. Сведения о символьных ссылках см. в разделе Создание символьных ссылок.

Жесткая ссылка — это представление файла в файловой системе, по которому несколько путей ссылается на один файл в одном томе. Чтобы создать жесткую ссылку, используйте функцию CreateHardLinkA .

Любые изменения, внесенные в файл с жесткой связью, мгновенно видны приложениям, которые обращаются к нему по ссылкам, ссылающимся на него. Атрибуты файла отражаются в каждой жесткой ссылке на этот файл, а изменения атрибутов этого файла распространяются на все жесткие ссылки. Однако размер записи в каталоге и сведения об атрибутах файла заметно обновляются только по ссылке, по которой было внесено изменение. Например, если снять флаг атрибута только для чтения для определенной жесткой ссылки, чтобы можно было удалить эту жесткую ссылку, при наличии нескольких жестких ссылок на файл другие жесткие ссылки будут отображаться, что атрибут только для чтения по-прежнему задан, что не соответствует действительности. Чтобы вернуть файл в состояние только для чтения, необходимо установить для файла флаг только для чтения из одной из оставшихся жестких ссылок.

Например, в системе, где C: и D: являются локальными дисками, а Z: — это сетевой диск, сопоставленный с \\fred\share, в качестве жесткой ссылки разрешены следующие ссылки:

  • C:\dira\ethel.txt , связанные с C:\dirb\dirc\lucy.txt
  • D:\dir1\tinker.txt , связанные с D:\dir2\dirx\bell.txt
  • C:\diry\bob.bak связан с C:\dir2\mina.txt

Следующие ссылки не допускаются:

  • C:\dira , связанный с C:\dirb
  • C:\dira\ethel.txt , связанные с D:\dirb\lucy.txt
  • C:\dira\ethel.txt , связанные с Z:\dirb\lucy.txt

Чтобы удалить жесткую ссылку, используйте функцию DeleteFileA . Вы можете удалять жесткие ссылки в любом порядке, независимо от порядка их создания.

Соединения

Соединение (также называемое мягкой ссылкой) отличается от жесткой связи тем, что объекты хранилища, на которые он ссылается, являются отдельными каталогами. Соединение также может связывать каталоги, расположенные на разных локальных томах на одном компьютере. В противном случае соединения работают так же, как и жесткие связи. Соединения реализуются через точки повторного анализа.

При условии, что в разделе Жесткие ссылки используются те же условия, в качестве соединений разрешены следующие ссылки:

  • C:\dira , связанный с C:\dirb\dirc
  • C:\dirx , связанный с D:\diry

Следующие ссылки не допускаются:

  • C:\dira\one.txt , связанные с C:\dirb\two.txt
  • C:\dir1 , связанный с Z:\dir2

См. также раздел

Создание символических ссылок