structure FILE_ID_BOTH_DIR_INFO (winbase.h)
Contient des informations sur les fichiers dans le répertoire spécifié. Utilisé pour les handles d’annuaire. Utilisez uniquement lors de l’appel de GetFileInformationByHandleEx. Le nombre de fichiers retournés pour chaque appel à GetFileInformationByHandleEx dépend de la taille de la mémoire tampon passée à la fonction. Tous les appels ultérieurs à GetFileInformationByHandleEx sur le même handle reprendront l’opération d’énumération une fois le dernier fichier retourné.
Syntaxe
typedef struct _FILE_ID_BOTH_DIR_INFO {
DWORD NextEntryOffset;
DWORD FileIndex;
LARGE_INTEGER CreationTime;
LARGE_INTEGER LastAccessTime;
LARGE_INTEGER LastWriteTime;
LARGE_INTEGER ChangeTime;
LARGE_INTEGER EndOfFile;
LARGE_INTEGER AllocationSize;
DWORD FileAttributes;
DWORD FileNameLength;
DWORD EaSize;
CCHAR ShortNameLength;
WCHAR ShortName[12];
LARGE_INTEGER FileId;
WCHAR FileName[1];
} FILE_ID_BOTH_DIR_INFO, *PFILE_ID_BOTH_DIR_INFO;
Membres
NextEntryOffset
Décalage de la structure FILE_ID_BOTH_DIR_INFO suivante retournée. Contient zéro (0) si aucune autre entrée ne suit celle-ci.
FileIndex
Décalage d’octet du fichier dans le répertoire parent. Ce membre n’est pas défini pour les systèmes de fichiers, tels que NTFS, dans lesquels la position d’un fichier dans le répertoire parent n’est pas fixe et peut être modifiée à tout moment pour maintenir l’ordre de tri.
CreationTime
Heure de création du fichier.
LastAccessTime
Heure à laquelle le fichier a été consulté pour la dernière fois.
LastWriteTime
Heure à laquelle le fichier a été écrit pour la dernière fois.
ChangeTime
Heure de la dernière modification du fichier.
EndOfFile
Nouvelle position absolue de fin de fichier en tant que décalage d’octet entre le début du fichier et la fin du fichier. Étant donné que cette valeur est de base zéro, elle fait en fait référence au premier octet libre dans le fichier. En d’autres termes, EndOfFile est le décalage vers l’octet qui suit immédiatement le dernier octet valide dans le fichier.
AllocationSize
Nombre d’octets alloués pour le fichier. Cette valeur est généralement un multiple de la taille du secteur ou du cluster de l’appareil physique sous-jacent.
FileAttributes
Attributs de fichier. Ce membre peut être n’importe quelle combinaison valide des attributs suivants :
FILE_ATTRIBUTE_ARCHIVE (0x00000020)
FILE_ATTRIBUTE_COMPRESSED (0x00000800)
FILE_ATTRIBUTE_DIRECTORY (0x00000010)
FILE_ATTRIBUTE_HIDDEN (0x00000002)
FILE_ATTRIBUTE_NORMAL (0x00000080)
FILE_ATTRIBUTE_READONLY (0x00000001)
FILE_ATTRIBUTE_SYSTEM (0x00000004)
FILE_ATTRIBUTE_TEMPORARY (0x00000100)
FileNameLength
Longueur du nom de fichier.
EaSize
Taille des attributs étendus pour le fichier.
ShortNameLength
Longueur de ShortName.
ShortName[12]
La convention de nommage de fichier 8.3 (par exemple, « FILENAME.TXT ») du fichier.
FileId
ID de fichier.
FileName[1]
Premier caractère de la chaîne de nom de fichier. Ceci est suivi en mémoire par le reste de la chaîne.
Remarques
Aucun droit d’accès spécifique n’est requis pour interroger ces informations.
Les numéros de référence de fichier, également appelés ID de fichier, sont garantis pour être uniques uniquement au sein d’un système de fichiers statique. Il n’est pas garanti qu’ils soient uniques au fil du temps, car les systèmes de fichiers sont libres de les réutiliser. Ils ne sont pas non plus assurés de rester constants. Par exemple, le système de fichiers FAT génère le numéro de référence d’un fichier à partir du décalage d’octet de l’enregistrement d’entrée de répertoire (DIRENT) du fichier sur le disque. La défragmentation peut modifier ce décalage d’octet. Ainsi, un numéro de référence de fichier FAT peut changer au fil du temps.
Toutes les dates et heures sont au format d’heure système absolu. Le temps système absolu est le nombre d’intervalles de 100 nanosecondes depuis le début de l’année 1601.
Cette structure FILE_ID_BOTH_DIR_INFO doit être alignée sur une limite DWORDLONG (8 octets). Si une mémoire tampon contient au moins deux de ces structures, la valeur NextEntryOffset de chaque entrée, à l’exception de la dernière, se situe sur une limite de 8 octets.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows Vista [applications de bureau | applications UWP] |
Serveur minimal pris en charge | Windows Server 2008 [applications de bureau | applications UWP] |
En-tête | winbase.h (inclure Windows.h) |
Composant redistribuable | SDK Windows sur Windows Server 2003 et Windows XP. |