Comment puis-je distinguer des liens durs programme de fichiers réels dans Windows 7?
Question
J'ai une différence entre les fichiers taille et l'espace disque utilisé (taille totale du fichier est encore plus que la taille du disque). Je suppose parce qu'il ya beaucoup de liens durs existent (aux composants WinSxS) dans Windows 7 / Vista. Mais comment puis-je distinguer des liens durs programme de fichiers réels dans Windows 7?
La solution
Vous ne pouvez pas, parce que tous les fichiers sont des liens durs. Pas vraiment. Un fichier est juste un lien difficile à un bloc de données - une liste dans un répertoire. (Peut-être vous symlinks dire? Vous peut distinguer les ...)
Utilisez les méthodes de BUILTIN Windows fournit pour le calcul de l'espace utilisé à la place.
EDIT: de référence (l'accent le mien)
Le lien lui-même est seulement une entrée de répertoire , et ne dispose pas d'un descripteur de sécurité. Par conséquent, lorsque vous modifiez le descripteur de sécurité d'un lien dur, vous changer le descripteur de sécurité du fichier sous-jacent, et tous les liens durs qui pointent vers le fichier permet l'accès nouvellement spécifié.
Autres conseils
ne peut pas Distinguez les liens durs de fichiers "réels". L'entrée de répertoire pour un « vrai fichier » est juste un autre lien dur. Peut-être que vous vouliez dire un lien symbolique.
POSIX a une fonction de stat
(appelé _stat
sous Windows) qui permet de détecter plusieurs liens vers le même fichier, ce qui aura le même nombre « inode ».
GetFileInformationByHandle () et vérifier le retour BY_HANDLE_FILE_INFORMATION nNumberOfLinks membre pour une valeur> 1.