FILE_ID_BOTH_DIR_INFO 结构 (winbase.h)
包含有关指定目录中的文件的信息。 用于目录句柄。 仅在调用 GetFileInformationByHandleEx 时使用。 每次调用 GetFileInformationByHandleEx 返回的文件数取决于传递给函数的缓冲区大小。 在同一句柄上对 GetFileInformationByHandleEx 的任何后续调用都将在返回最后一个文件后恢复枚举操作。
语法
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;
成员
NextEntryOffset
返回的下一 个FILE_ID_BOTH_DIR_INFO 结构的偏移量。 如果后面没有其他条目,则包含零 (0) 。
FileIndex
文件在父目录中的字节偏移量。 对于文件系统(如 NTFS),此成员未定义,其中文件在父目录中的位置不是固定的,可以随时更改以保持排序顺序。
CreationTime
创建文件的时间。
LastAccessTime
上次访问文件的时间。
LastWriteTime
上次写入文件的时间。
ChangeTime
上次更改文件的时间。
EndOfFile
绝对新的文件结束位置,作为从文件开头到文件末尾的字节偏移量。 由于此值从零开始,因此它实际上引用文件中的第一个可用字节。 换句话说, EndOfFile 是紧跟在文件中最后一个有效字节之后的字节的偏移量。
AllocationSize
为文件分配的字节数。 此值通常是基础物理设备的扇区或群集大小的倍数。
FileAttributes
文件属性。 此成员可以是以下属性的任意有效组合:
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
文件名的长度。
EaSize
文件的扩展属性的大小。
ShortNameLength
ShortName 的长度。
ShortName[12]
简短的 8.3 文件命名约定 (,例如,“FILENAME.TXT”) 文件的名称。
FileId
文件 ID。
FileName[1]
文件名字符串的第一个字符。 这在内存中后跟字符串的其余部分。
注解
无需特定访问权限即可查询此信息。
文件引用号(也称为文件 ID)保证仅在静态文件系统中是唯一的。 它们不保证随时间推移是唯一的,因为文件系统可以自由重复使用它们。 也不保证它们保持不变。 例如,FAT 文件系统从磁盘上的 DIRENT) 文件目录条目记录的字节偏移量 (生成文件引用号。 碎片整理可以更改此字节偏移量。 因此,FAT 文件引用编号可能会随时间而变化。
所有日期和时间均采用绝对系统时间格式。 绝对系统时间是自 1601 年初以来的 100 纳秒间隔数。
此 FILE_ID_BOTH_DIR_INFO 结构必须在 DWORDLONG (8 字节) 边界上对齐。 如果缓冲区包含其中两个或更多个结构,则每个条目中的 NextEntryOffset 值(最后一个除外)位于 8 字节边界上。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista [桌面应用 | UWP 应用] |
最低受支持的服务器 | Windows Server 2008 [桌面应用 | UWP 应用] |
标头 | winbase.h (包括 Windows.h) |
可再发行组件 | 在 Windows Server 2003 和 Windows XP 上Windows SDK。 |