структура 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 может меняться со временем.

Все даты и время имеют абсолютный системный формат. Абсолютное системное время — это число 100-наносекундных интервалов с начала 1601 года.

Эта FILE_ID_BOTH_DIR_INFO структура должна быть выровнена по границе DWORDLONG (8 байт). Если буфер содержит две или более из этих структур, значение NextEntryOffset в каждой записи, кроме последней, попадает на 8-байтовую границу.

Требования

Требование Значение
Минимальная версия клиента Windows Vista [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2008 [классические приложения | Приложения UWP]
Верхняя часть winbase.h (включая Windows.h)
Распространяемые компоненты Windows SDK в Windows Server 2003 и Windows XP.

См. также раздел

FILE_INFO_BY_HANDLE_CLASS

Константы атрибута файла

GetFileInformationByHandleEx