Получить количество жестких ссылок Windows без GetFileInformationByHandle () - PullRequest
2 голосов
/ 19 августа 2010

Есть ли способ подсчета жестких ссылок на файл в Windows без использования GetFileInformationByHandle ()?

MSDN говорит:

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

На практике получение количества ссылок на сетевом ресурсе, независимо от версии Windowsна обоих концах всегда возвращайте 1. Единственный случай, когда это работает, - это доступ к общему ресурсу samba.Похоже, они забыли продублировать ошибку / ограничение Windows.Кроме того, «частичные результаты», не сообщая вам, что они являются частичными, довольно хороши для вызова API.

Ответы [ 2 ]

1 голос
/ 11 октября 2013

Для этого вы можете попробовать FindFirstFileNameW и FindNextFileNameW .

Перечислять вещи для подсчета не очень удобно, но это другой способ.

1 голос
/ 19 августа 2010

Это кажется немного странным, но как насчет GetFileInformationByHandleEx.Он не содержит отказ, который вы цитировали выше, поэтому, возможно, в него встроены смарты для решения некоторых проблем, которые может иметь GetFileInformationByHandle.

...