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
檔案標識碼。
FileName[1]
檔名字串的第一個字元。 這會接著在記憶體中加上字串的其餘部分。
備註
查詢這項資訊不需要特定訪問許可權。
檔案參考編號也稱為檔案標識符,保證只在靜態文件系統內是唯一的。 它們不保證在一段時間內是唯一的,因為文件系統可以自由重複使用它們。 它們也不保證會維持不變。 例如,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。 |