WIN32_FIND_DATA
Структура
WIN32_FIND_DATA
описывает
файл, найденный функциями FindFirstFile
, FindFirstFileEx
или FindNextFile
.
typedef struct _WIN32_FIND_DATA { DWORD dwFileAttributes; FILETIME ftCreationTime; FILETIME ftLastAccessTime; FILETIME ftLastWriteTime; DWORD nFileSizeHigh; DWORD nFileSizeLow; DWORD dwReserved0; DWORD dwReserved1; TCHAR cFileName[ MAX_PATH ]; TCHAR cAlternateFileName[ 14 ]; } WIN32_FIND_DATA;
Элементы
dwFileAttributes
Указывает атрибуты найденного файла. Этот элемент может быть комбинацией
следующих значений:
Атрибут | Описание |
---|---|
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 | Это временный файл. Приложения должны записывать в такой файл только в крайней необходимости. Большая часть данных файла находится в памяти и не сбрасывается на диск, так как файл будет удалён. |
FILE_ATTRIBUTE_NOT_CONTENT_INDEXED | Этот файл или каталог не будут индексироваться службой индексирования. |
FILE_ATTRIBUTE_VIRTUAL | Этот файл - виртуальный файл. |
ftCreationTime
Время создания - структура FILETIME,
содержащая время создания файла. FindFirstFile
и
FindNextFile
возвращают время файла в UTC-формате.
Эти функции устанавливают элементы
Вы можете использовать функцию FileTimeToLocalFileTime
для преобразования из UTC в локальное время и тогда использовать
функцию FileTimeToSystemTime
для преобразования
локального времени в структуру SYSTEMTIME
содержащую отдельные элементы для месяца, дня, года и так далее...
FILETIME
в ноль, если файловая
система, содержащая файл, не поддерживает этот временной атрибут.Вы можете использовать функцию FileTimeToLocalFileTime
ftLastAccessTime
Структура FILETIME с временем последнего
доступа к файлу (чтение, запись, исполнение).
Для каталогов в этой компоненте содержится информация о времени создания каталога.
На FAT дата для файлов и каталогов будет правильна, но время дня будет всегда установлено на полночь.
Время хранится в UTC формате; элементы структуры установлены в ноль, если файловая система не поддерживает этого свойства.
Для каталогов в этой компоненте содержится информация о времени создания каталога.
На FAT дата для файлов и каталогов будет правильна, но время дня будет всегда установлено на полночь.
Время хранится в UTC формате; элементы структуры установлены в ноль, если файловая система не поддерживает этого свойства.
ftLastWriteTime
Структура FILETIME с временем последней
записи в файл (с помощью функций WriteFile
или
SetEndOfFile
). Время последней записи не обновляется для таких операций, как
установка атрибутов файла или изменение дескриптора безопасности (security descriptors).
Для каталогов в этой компоненте содержится информация о времени создания каталога.
Время хранится в UTC формате; элементы структуры установлены в ноль, если файловая система не поддерживает этого свойства.
Для каталогов в этой компоненте содержится информация о времени создания каталога.
Время хранится в UTC формате; элементы структуры установлены в ноль, если файловая система не поддерживает этого свойства.
nFileSizeHigh
Старшее двойное слово 64-х разрядного размера файла в байтах.
Размер файла равен
(nFileSizeHigh * (1+MAXDWORD)) + nFileSizeLow
.nFileSizeLow
Младшее двойное слово размера файла в байтах.
dwReserved0
Если поле
dwFileAttributes
содержит атрибут
FILE_ATTRIBUTE_REPARSE_POINT
, это поле содержит тип
точки повторной обработки.
В противном случае значение этого поля не определено и не должно
использоваться.dwReserved1
Резерв.
cFileName
Строка с именем файла, заканчивающаяся символом конца строки (0x00).
cAlternateFileName
Альтернативное имя файла (классическая 8.3 (filename.ext) форма).
Замечания
- Если файл имеет длинное имя, полное имя возвращается в элементе
cFileName
а усечённая версия формата 8.3 сохраняется вcAlternateFileName
. ИначеcAlternateFileName
пусто. Как альтернативу вы можете использовать функцию GetShortPathNameдля возвращения 8.3-вида имени файла. - Не все файловые системы позволяют хранить время создания файла и последнего доступа к нему, и не все системы хранят их одинаково. Например, в файловой системе FAT под Windows NT время создания файла записывается с разрешением 10 миллисекунд, время последней модификации - 2 секунды, а время доступа - 1 день (то есть, фактически, записывается только дата доступа). На файловой системе NTFS время доступа имеет разрешение 1 час.
Смотрите также: