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

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

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

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

Например, в системе, где 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

См. также