BY_HANDLE_FILE_INFORMATION 结构 (fileapi.h)

包含 GetFileInformationByHandle 函数检索的信息。

语法

typedef struct _BY_HANDLE_FILE_INFORMATION {
  DWORD    dwFileAttributes;
  FILETIME ftCreationTime;
  FILETIME ftLastAccessTime;
  FILETIME ftLastWriteTime;
  DWORD    dwVolumeSerialNumber;
  DWORD    nFileSizeHigh;
  DWORD    nFileSizeLow;
  DWORD    nNumberOfLinks;
  DWORD    nFileIndexHigh;
  DWORD    nFileIndexLow;
} BY_HANDLE_FILE_INFORMATION, *PBY_HANDLE_FILE_INFORMATION, *LPBY_HANDLE_FILE_INFORMATION;

成员

dwFileAttributes

文件属性。 有关可能的值及其说明,请参阅 文件属性常量

ftCreationTime

FILETIME 结构,指定何时创建文件或目录。 如果基础文件系统不支持创建时间,则此成员为零 (0) 。

ftLastAccessTime

FILETIME 结构。 对于文件, 结构指定最后一次读取或写入文件的时间。 对于目录,结构指定何时创建目录。 对于文件和目录,指定的日期是正确的,但一天中的时间始终设置为午夜。 如果基础文件系统不支持上次访问时间,则此成员为零 (0) 。

ftLastWriteTime

FILETIME 结构。 对于文件, 结构指定最后一次写入文件的时间。 对于目录,结构指定何时创建目录。 如果基础文件系统不支持上次写入时间,则此成员为零 (0) 。

dwVolumeSerialNumber

包含文件的卷的序列号。

nFileSizeHigh

文件大小的高阶部分。

nFileSizeLow

文件大小的低序部分。

nNumberOfLinks

指向此文件的链接数。 对于 FAT 文件系统,此成员始终为 1。 对于 NTFS 文件系统,它可以超过 1。

nFileIndexHigh

与文件关联的唯一标识符的高阶部分。 有关详细信息,请参阅 nFileIndexLow

nFileIndexLow

与文件关联的唯一标识符的低序部分。

标识符 () 高低部分,卷序列号唯一标识单台计算机上的文件。 若要确定两个打开的句柄是否表示同一文件,请组合每个文件的标识符和卷序列号并进行比较。

随 Windows Server 2012 引入的 ReFS 文件系统包含 128 位文件标识符。 若要检索 128 位文件标识符,请使用 GetFileInformationByHandleEx 函数和 FileIdInfo 检索 FILE_ID_INFO 结构。 不保证此结构中的 64 位标识符在 ReFS 上是唯一的。

注解

存储在 nFileIndexHighnFileIndexLow 成员中的标识符称为文件 ID。 对文件 ID 的支持特定于文件系统。 不保证文件 ID 随时间推移是唯一的,因为文件系统可以自由重复使用它们。 在某些情况下,文件的文件 ID 可能会随时间而更改。

在 FAT 文件系统中,文件 ID 是从包含目录的第一个群集和文件条目目录中的字节偏移量生成的。 某些碎片整理产品会更改此字节偏移量。 (Windows 内置碎片整理不会。) 因此,FAT 文件 ID 可能会随时间而更改。 重命名 FAT 文件系统中的文件也可以更改文件 ID,但前提是新文件名比旧文件名长。

在 NTFS 文件系统中,文件将保留相同的文件 ID,直到被删除。 可以使用 ReplaceFile 函数将一个文件替换为另一个文件,而无需更改文件 ID。 但是,替换文件(而不是被替换的文件)的文件 ID 将保留为生成的文件的文件 ID。

并非所有文件系统都可以记录创建和上次访问时间,并非所有文件系统都以相同的方式记录它们。 例如,在 Windows FAT 文件系统上,创建时间的分辨率为 10 毫秒,写入时间的分辨率为 2 秒,访问时间的分辨率为 1 天, (访问日期) 。 在 NTFS 文件系统上,访问时间的分辨率为 1 小时。 有关详细信息,请参阅文件时间

要求

要求
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
标头 fileapi.h (包括 Windows.h)

另请参阅

FILETIME

FILE_ID_INFO

文件特性常量

GetFileInformationByHandle

GetFileInformationByHandleEx