Структура BY_HANDLE_FILE_INFORMATION содержит информацию, извлеченную функцией 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; |
Атрибуты файла. Этот член структуры может состоять из одного или нескольких нижеследующих значений.
Атрибут |
Предназначение |
---|---|
FILE_ATTRIBUTE_ARCHIVE | Файл или каталог - архивный файл. Приложения используют этот атрибут, чтобы отметить файлы для резервного копирования или перемещения. |
FILE_ATTRIBUTE_COMPRESSED | Файл или каталог - сжатые. Для файла, это означает, что все данные в файле сжимаются. Для каталога, это означает, что сжатие - значение по умолчанию для недавно созданных файлов и подкаталогов. |
FILE_ATTRIBUTE_DIRECTORY | Дескриптор идентифицирует каталог. |
FILE_ATTRIBUTE_ENCRYPTED | Файл или каталог - зашифрованные. Для файла, это означает, что все данные в файле зашифрованы. Для каталога, это означает, что шифрование - значение по умолчанию для недавно созданных файлов и подкаталогов. |
FILE_ATTRIBUTE_HIDDEN | Файл или каталог - скрытый. Они не включаются в обычный перечень файлов каталога. |
FILE_ATTRIBUTE_NORMAL | Файл или каталог не имеют других установленных атрибутов. Этот атрибут допустим только в том случае, если используется как единственный. |
FILE_ATTRIBUTE_OFFLINE | Данные файла доступны не сразу. Этот атрибут указывает, что данные файла были физически перемещены, чтобы сохраняться автономно. Этот атрибут используется программами Удаленного хранилища, иерархического управления памятью. Приложения не должны произвольно изменять этот атрибут. |
FILE_ATTRIBUTE_READONLY | Файл или каталог только для чтения. Приложения могут читать этот файл, но не могут записать в него или удалить его. Что касается каталога, приложения не могут удалить его. |
FILE_ATTRIBUTE_REPARSE_POINT | Файл или каталог имеет связанную точку монтирования. |
FILE_ATTRIBUTE_SPARSE_FILE | Файл - разреженный файл. |
FILE_ATTRIBUTE_SYSTEM | Файл или каталог - часть операционной системы или используются исключительно операционной системой. |
FILE_ATTRIBUTE_TEMPORARY | Файл используется для временного хранения. Файловые системы избегают записывать данные обратно на запоминающее устройство большой емкости, если доступна достаточная кэш-память, потому что часто прикладная программа удаляет временный файл вскоре после того, как дескриптор закрывается. В этом случае, система может полностью отменить запись данных. В противном случае, данные должны быть записаны после того, как дескриптор закроется. |
Структура FILETIME, которая устанавливается, когда файл или каталог создавались. Если лежащая в основе файловая система не поддерживает время создания, этот член структуры равняется нулю.
ftLastAccessTimeСтруктура FILETIME. Для файла, структура устанавливает, когда последний раз читали из или писали в него. Для каталога, структура определяет, когда создавался каталог. И для файлов и для каталогов, указанная дата будет исправлена, но время дня будет всегда устанавливаться от полуночи. Если лежащая в основе файловая система не поддерживает время последнего обращения к файлу, этот член структуры равняется нулю.
ftLastWriteTimeСтруктура FILETIME. Для файла, структура устанавливает, когда последний раз была запись в файл . Для каталога, структура устанавливает, когда создался каталог . Если лежащая в основе файловая система не поддерживает последнее время записи, этот член структуры равняется нулю.
dwVolumeSerialNumberПорядковый номер тома, который содержит файл.
nFileSizeHighСтаршая часть размера файла.
nFileSizeLowМладшая часть размера файла.
nNumberOfLinksЧисло связей с этим файлом. Для файловой системы FAT этот член структуры всегда - 1. Для NTFS, это может быть больше чем 1.
nFileIndexHighСтаршая часть уникального идентификатора связи с файлом. Дополнительную информацию, см. в nFileIndexLow.
nFileIndexLowМладшая часть уникального идентификатора связи с файлом.
Обратите внимание! на то, что то это значение используется только в то время, когда файл является открытым по крайней мере одним процессом. Если никакие процессы не сделали так, чтобы файл открылся, индекс может измениться в следующий раз, когда файл открывается. |
Этот идентификатор (старшая и младшая части) и порядковый номер тома уникально идентифицируют файл на одиночном компьютере. Чтобы выяснить представляют ли два открытых дескриптора один и тот же файл, объедините этот идентификатор и порядковый номер тома для каждого файла и сравните их.
Не все файловые системы могут фиксировать время создания и последнего доступа, и не все файловые системы фиксируют это одним и тем же способом. Например, в файловой системе NT FAT, время создания имеет дискретность 10 миллисекунд, время записи имеет дискретность 2 секунды, а время доступа имеет дискретность 1 день (фактическую дату доступа). На NTFS, время доступа имеет дискретность 1 час. Для получения дополнительной информации, см. Временные характеристики файла.
Обзор Управление файлами, Структуры, используемые в управлении файлами, FILETIME, GetFileInformationByHandle
Размещение и совместимость BY_HANDLE_FILE_INFORMATION | ||
К | Windows Vista | Да |
л | Windows XP | Да |
и | Windows 2000 Professional | Да |
е | Windows NT Workstation | Да |
н | Windows Me | Да |
т | Windows 98 | Да |
Windows 95 | Да | |
С | Windows Server 2008 | Да |
е | Windows Server 2003 | Да |
р | Windows 2000 Server | Да |
в | Windows NT Server | Да |
е | ||
р | ||
Используемая библиотека | - | |
Используемая DLL | - | |
Заголовочный файл | ||
- объявлено в | Winbase.h | |
- включено в | Windows.h | |
Unicode | Нет | |
Замечания по платформе | Не имеется |