Как я могу программно различить жесткие ссылки от реальных файлов в Windows 7?

StackOverflow https://stackoverflow.com/questions/3636820

  •  30-09-2019
  •  | 
  •  

Вопрос

У меня есть разница между размером файлов и использованным дисковым пространством (общий размер файла даже больше, чем размер диска). Полагаю, потому что существует много жестких ссылок (к компонентам Winsxs) в Windows 7 / Vista. Но как я могу программно различить жесткие ссылки от реальных файлов в Windows 7?

Это было полезно?

Решение

Вы не можете, потому что все файлы являются жесткими ссылками. Нетствием. Файл - это просто жесткая ссылка на кусок данных - список в каталоге. (Возможно, вы имеете в виду симлитные ссылки? Вы могу отличить тех ...)

Используйте встроенные методы Windows, обеспечивающие для расчета используемого пространства.

РЕДАКТИРОВАТЬ: Ссылка (Упор мой)

Сама ссылка - только запись каталога, И не имеет дескриптора безопасности. Поэтому, когда вы изменяете дескриптор безопасности жесткой связи, вы измените дескриптор безопасности базового файла, и все жесткие ссылки, которые указывают на файл, позволяют вновь указанным доступе.

Другие советы

Ты неверно Различают жесткие ссылки из «реальных файлов». Запись каталога для «реального файла» - это еще одна жесткая ссылка. Возможно, вы имели в виду символическую ссылку.

POSIX имеет A. stat Функция (называется _stat В Windows), которые могут обнаруживать несколько ссылок на один и тот же файл, который будет иметь тот же «inode» номер.

Использовать Getfileinformationbyhandle () и проверьте возвращенные By_handle_file_information. Nnomberoflinks Член для значения> 1.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top