Les répertoires dans Windows ont-ils un numéro d’inode?

Je dois trouver le numéro d’inode d’un répertoire dans Windows. En utilisant la fonction _stat et _stat64 , je peux obtenir l’inode et d’autres informations pour un fichier. Mais quand j’utilise le même pour les répertoires Windows, il donne toujours le même numéro pour n’importe quel répertoire.

Est-il possible de trouver le numéro d’inode d’un répertoire Windows?

De windows stat docs ,

st_ino

Numéro du nœud d’information (l’inode) du fichier (spécifique à UNIX). Sur les systèmes de fichiers UNIX, l’inode décrit les horodatages, les permissions et le contenu des fichiers. Lorsque les fichiers sont liés entre eux, ils partagent le même inode. L’inode, et donc st_ino, n’a aucune signification dans les systèmes de fichiers FAT, HPFS ou NTFS.

Donc, ne comptez pas sur le numéro d’inode sur les systèmes Windows. C’est un concept spécifique à Unix.

Référez-vous à cet article pour des idées sur la manière dont Windows gère les fichiers sans inodes mais en utilisant quelque chose de similaire.

Les systèmes de fichiers Windows ne sont pas directement analogiques au numéro d’inode dans la plupart des systèmes de fichiers Unix.

Si vous voulez quelque chose qui identifie de manière unique et sans ambiguïté le répertoire en question, vous pouvez trouver le numéro de série du volume / combo FileId suffisant. Vous pouvez les récupérer avec GetFileInformationByHandleEx (qui, malgré le nom, peut récupérer des informations sur les répertoires) avec FileInformationClass (second paramètre) défini sur FileIdInfo .

Ceci est surtout utile pour NTFS. Comme vous le verrez dans les documents, les limitations sur les systèmes de fichiers FAT sont assez importantes (même si cela peut toujours être mieux que rien, selon vos besoins).

De Wikipedia:

Un index-node (inode) est une structure de données sur un système de fichiers traditionnel de type Unix tel que UFS. Un inode stocke toutes les informations sur un fichier, un répertoire ou un autre object du système de fichiers normal, à l’exception de ses données et de son nom.

Les systèmes de fichiers habituels utilisés par Windows ne sont pas construits autour du concept d’inode, ils sont différents, il n’y a donc pas de “numéro d’inode” à signaler, entre autres choses.

Voici un lien avec une explication claire: Explication Inode