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 成員中的標識碼稱為檔案識別碼。 檔案標識碼的支持是文件系統特定的。 檔案標識碼不保證在一段時間內是唯一的,因為文件系統可以自由重複使用。 在某些情況下,檔案的檔案標識碼可能會隨著時間而變更。

在 FAT 檔案系統中,檔案識別碼是從包含目錄的第一個叢集產生,以及檔案項目目錄中的位元組位移。 某些重組產品會變更此位元組位移。 (Windows 現成的重組不會。) 因此,FAT 檔案識別符可能會隨著時間而變更。 在 FAT 檔案系統中重新命名檔案也可以變更檔案識別碼,但只有在新檔名超過舊檔名時。

在NTFS檔案系統中,檔案會保留相同的檔案識別碼,直到刪除為止。 您可以使用 ReplaceFile 函式,以另一個檔案取代一個檔案,而不需變更檔案識別碼。 不過,取代檔案的檔案標識符,而不是已取代的檔案,會保留為所產生檔案的檔案標識碼。

並非所有文件系統都可以記錄建立和上次存取時間,而且並非所有文件系統都以相同的方式記錄它們。 例如,在 Windows FAT 檔系統上,建立時間的解析度為 10 毫秒、寫入時間解析度為 2 秒,而存取時間的解析度為 1 天, (存取日期) 。 在NTFS檔系統上,存取時間的解析度為1小時。 如需詳細資訊,請參閱 檔案時間

規格需求

需求
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限傳統型應用程式]
標頭 fileapi.h (包含 Windows.h)

另請參閱

FILETIME

FILE_ID_INFO

檔案屬性常數

GetFileInformationByHandle

GetFileInformationByHandleEx