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

Атрибуты файла — это значения метаданных, хранящиеся в файловой системе на диске и используемые системой и доступны разработчикам через различные API-интерфейсы файлового ввода-вывода. Список связанных API и разделов см. в разделе См. также .

Пример

FILE_BASIC_INFO basicInfo;
    BOOL result;

    result = GetFileInformationByHandleEx( hFile,
                                               FileBasicInfo,
                                               &basicInfo,
                                               sizeof(basicInfo));

\\...

printf("  File Attributes: ");
    PrintFileAttributes(basicInfo.FileAttributes);

\\...
VOID
PrintFileAttributes(
    ULONG FileAttributes
    )
{
    
    if (FileAttributes & FILE_ATTRIBUTE_ARCHIVE) {
        printf("Archive ");
    }
    if (FileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
        printf("Directory ");
    }
    if (FileAttributes & FILE_ATTRIBUTE_READONLY) {
        printf("Read-Only ");
    }
}

Пример взят из классического примера Windows на GitHub.

Констант/значение Описание
FILE_ATTRIBUTE_READONLY
1 (0x00000001)
Файл, доступный только для чтения. Приложения могут считывать файл, но не могут записывать в него или удалять его. Этот атрибут не учитывается в каталогах. Дополнительные сведения см. в статье Невозможно просматривать или изменять атрибуты папок только для чтения или Системные атрибуты папок в Windows Server 2003, Windows XP, Windows Vista или Windows 7.
FILE_ATTRIBUTE_HIDDEN
2 (0x00000002)
Файл или каталог скрыт. Он не включен в обычный список каталогов.
FILE_ATTRIBUTE_SYSTEM
4 (0x00000004)
Файл или каталог, часть или который используется исключительно операционной системой.
FILE_ATTRIBUTE_DIRECTORY
16 (0x00000010)
Дескриптор, идентифицирующий каталог.
FILE_ATTRIBUTE_ARCHIVE
32 (0x00000020)
Файл или каталог, который является архивным файлом или каталогом. Приложения обычно используют этот атрибут для пометки файлов для резервного копирования или удаления.
FILE_ATTRIBUTE_DEVICE
64 (0x00000040)
Это значение зарезервировано для использования системой.
FILE_ATTRIBUTE_NORMAL
128 (0x00000080)
Файл, для которых не заданы другие атрибуты. Этот атрибут действителен только при использовании отдельно.
FILE_ATTRIBUTE_TEMPORARY
256 (0x00000100)
Файл, используемый для временного хранения. Файловые системы избегают записи данных обратно в массовое хранилище, если доступно достаточно памяти кэша, так как обычно приложение удаляет временный файл после закрытия дескриптора. В этом сценарии система может полностью избежать записи данных. В противном случае данные записываются после закрытия дескриптора.
FILE_ATTRIBUTE_SPARSE_FILE
512 (0x00000200)
Файл, который является разреженным файлом.
FILE_ATTRIBUTE_REPARSE_POINT
1024 (0x00000400)
Файл или каталог, с которым связана точка повторного измерения, или файл, представляющий собой символьную ссылку.
FILE_ATTRIBUTE_COMPRESSED
2048 (0x00000800)
Сжатый файл или каталог. Для файла все данные в файле сжимаются. Для каталога сжатие используется по умолчанию для вновь созданных файлов и подкаталогов.
FILE_ATTRIBUTE_OFFLINE
4096 (0x00001000)
Данные файла доступны не сразу. Этот атрибут указывает, что данные файла физически перемещаются в автономное хранилище. Этот атрибут используется удаленным хранилищем, которое является программным обеспечением для управления иерархическим хранилищем. Приложения не должны произвольно изменять этот атрибут.
FILE_ATTRIBUTE_NOT_CONTENT_INDEXED
8192 (0x00002000)
Файл или каталог не должны индексироваться службой индексирования содержимого.
FILE_ATTRIBUTE_ENCRYPTED
16384 (0x00004000)
Зашифрованный файл или каталог. Для файла шифруются все потоки данных в файле. Для каталога шифрование используется по умолчанию для вновь созданных файлов и подкаталогов.
FILE_ATTRIBUTE_INTEGRITY_STREAM
32768 (0x00008000)
Для каталога или потока данных пользователя настроена целостность (поддерживается только на томах ReFS). Он не включен в обычный список каталогов. Параметр целостности сохраняется вместе с файлом, если он переименован. Если файл копируется, то для конечного файла будет задана целостность, если для исходного файла или целевого каталога задана целостность.
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 и Windows XP: Этот флаг не поддерживается до Windows Server 2012.
FILE_ATTRIBUTE_VIRTUAL
65536 (0x00010000)
Это значение зарезервировано для использования системой.
FILE_ATTRIBUTE_NO_SCRUB_DATA
131072 (0x00020000)
Поток данных пользователя, который не будет считываться сканером целостности данных в фоновом режиме (AKA scrubber). Если задано в каталоге, он обеспечивает только наследование. Этот флаг поддерживается только на томах дисковые пространства и ReFS. Он не включен в обычный список каталогов.
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 и Windows XP: Этот флаг не поддерживается до тех пор, пока не Windows 8 и Windows Server 2012.
FILE_ATTRIBUTE_EA
262144 (0x00040000)
Файл или каталог с расширенными атрибутами.

ВАЖНО: Эта константа предназначена только для внутреннего использования.
FILE_ATTRIBUTE_PINNED
524288 (0x00080000)
Этот атрибут указывает на намерение пользователя сохранить файл или каталог полностью локально, даже если к файлу или каталогу не осуществляется активный доступ. Этот атрибут предназначен для использования с программным обеспечением для управления иерархическим хранилищем.
FILE_ATTRIBUTE_UNPINNED
1048576 (0x00100000)
Этот атрибут указывает, что файл или каталог не должны полностью присутствовать локально, за исключением случаев активного доступа. Этот атрибут предназначен для использования с программным обеспечением для управления иерархическим хранилищем.
FILE_ATTRIBUTE_RECALL_ON_OPEN
262144 (0x00040000)
Этот атрибут отображается только в классах перечисления каталогов (FILE_DIRECTORY_INFORMATION, FILE_BOTH_DIR_INFORMATION и т. д.). Если этот атрибут задан, это означает, что файл или каталог не имеют физического представления в локальной системе; элемент является виртуальным. Открытие товара будет дороже, чем обычно, например, это приведет к тому, что по крайней мере часть из него будет получена из удаленного хранилища.
FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS
4194304 (0x00400000)
Если этот атрибут задан, это означает, что файл или каталог не полностью присутствуют локально. Для файла это означает, что не все его данные находится в локальном хранилище (например, они могут быть разреженными, а некоторые данные все еще в удаленном хранилище). Для каталога это означает, что часть содержимого каталога виртуализируется из другого расположения. Чтение файла или перечисление каталога будет более дорогостоящим, чем обычно, например, это приведет к получению по крайней мере части содержимого файла или каталога из удаленного хранилища. Этот бит могут задать только вызывающие в режиме ядра.

Мини-фильтры файловой системы ниже диапазона высоты 180000 –189999 (FSFilter HSM Load Order Group) не должны выдавать целевые кэшированные операции чтения или записи в файлы с этим атрибутом. Это может привести к загрязнению кэша и потенциальному повреждению файлов. Дополнительные сведения см. в разделе Обработка заполнителей.

Требования

Требование Значение
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Заголовок WinNT.h (включая Windows.h)

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

Атрибут сжатия

Создание и открытие файлов

CreateFile

CreateFileTransacted

GetFileAttributes

GetFileAttributesEx

GetFileAttributesTransacted

GetFileInformationByHandle

GetFileInformationByHandleEx

SetFileAttributes

SetFileAttributesTransacted

SetFileInformationByHandle