Поделиться через


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

Константы атрибутов файлов определяют значения метаданных, хранящиеся файловой системой на диске, и используются системой и доступны разработчикам через различные API ввода-вывода файлов. Эти константы позволяют разработчикам проверять и задавать свойства файлов, такие как доступные только для чтения, скрытые или сжатые атрибуты. Список связанных API и разделов см. в разделе "См. также ".

Example

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.

Константа/значение Description
FILE_ATTRIBUTE_READONLY
1 (0x00000001)
Файл, доступный только для чтения. Приложения могут считывать файл, но не могут записывать в него или удалять его. Этот атрибут не учитывается в каталогах.
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) не должны выдавать целевые кэшированные операции чтения или записи в файлы, имеющие этот набор атрибутов. Это может привести к повреждению кэша и потенциальному повреждению файлов. Дополнительные сведения см. в разделе "Обработка заполнителей".

Требования

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

См. также

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

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

CreateFile

CreateFileTransacted

GetFileAttributes

GetFileAttributesEx

GetFileAttributesTransacted

GetFileInformationByHandle

GetFileInformationByHandleEx

SetFileAttributes

SetFileAttributesTransacted

SetFileInformationByHandle

Проводник в Windows