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。

另请参阅

FILE_INFO_BY_HANDLE_CLASS

文件特性常量

GetFileInformationByHandleEx