WIN32_FIND_DATA

Programming Far Manager plugins

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-формате. Эти функции устанавливают элементы FILETIME в ноль, если файловая система, содержащая файл, не поддерживает этот временной атрибут.
Вы можете использовать функцию FileTimeToLocalFileTime для преобразования из UTC в локальное время и тогда использовать функцию FileTimeToSystemTime для преобразования локального времени в структуру SYSTEMTIME содержащую отдельные элементы для месяца, дня, года и так далее...
ftLastAccessTime
Структура FILETIME с временем последнего доступа к файлу (чтение, запись, исполнение).
Для каталогов в этой компоненте содержится информация о времени создания каталога.
На FAT дата для файлов и каталогов будет правильна, но время дня будет всегда установлено на полночь.
Время хранится в UTC формате; элементы структуры установлены в ноль, если файловая система не поддерживает этого свойства.
ftLastWriteTime
Структура FILETIME с временем последней записи в файл (с помощью функций WriteFile или SetEndOfFile ). Время последней записи не обновляется для таких операций, как установка атрибутов файла или изменение дескриптора безопасности (security descriptors).
Для каталогов в этой компоненте содержится информация о времени создания каталога.
Время хранится в 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 час.
Смотрите также: