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


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

На томе файловой системы NTFS каждый файл и каталог имеет атрибут сжатия. Другие файловые системы также могут реализовать атрибут сжатия для отдельных файлов и каталогов.

Вы можете определить, поддерживает ли файловая система атрибут сжатия для файлов и каталогов, вызвав функцию GetVolumeInformation и проверив флаг бита FILE_FILE_COMPRESSION .

Используйте функцию GetFileAttributes или GetFileAttributesEx , чтобы определить атрибут сжатия файла или каталога.

Если задан атрибут сжатия файла (FILE_ATTRIBUTE_COMPRESSED), все данные в файле сжимаются. Если атрибут не задан, никакие данные в файле не сжимаются. Частично сжатое состояние с точки зрения программирования в пользовательском режиме отсутствует; Атрибут сжатия — это простой логический индикатор состояния сжатия.

Атрибут сжатия каталога предоставляет атрибут сжатия по умолчанию для вновь созданных файлов и подкаталогов. При вызове CreateFile или CreateDirectory для создания нового файла или каталога новый файл или каталог наследует атрибут сжатия родительского каталога.

Чтобы изменить атрибут FILE_ATTRIBUTE_COMPRESSED для файла или каталога, необходимо использовать функцию DeviceIoControl с кодом элемента управления FSCTL_SET_COMPRESSION .

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