Недавно я написал компрессор и декомпрессор DEFLATE. Насколько я понимаю, fstream, который Windows предоставляет вам, не включает атрибуты NTFS, поскольку они находятся в $MFT. Мне нужно еще раз просмотреть NTFS, чтобы понять, что там происходит. Контекстное меню Windows, вызываемое правой кнопкой мыши, кажется, что Zip хранит атрибуты файла NTFS. Могу ли я ошибаться, полагая, что заголовок $MFT, вплоть до данных файла, просто копируется в «дополнительное поле» заголовка локального файла Zip Archives? Я говорю до, потому что, если я правильно помню, файл можно хранить в атрибуте $MFT.
Я пробовал просматривать спецификации и искал похожие случаи. Случаев не выявлено. Я буду читать заголовки локальных файлов и анализировать дополнительное поле, чтобы увидеть, хранится ли там информация в течение следующей недели.
[РЕДАКТИРОВАТЬ]
Я мог бы вызвать NtQueryInformationFile, запросить FileAllInformation и сохранить структуру. Однако я хотел бы иметь возможность читать Windows Zip с расширенными атрибутами.





Дополнительное поле NTFS описано в примечании к приложению PKWare. Если вы можете написать свои собственные файлы deflate и inflake, вы можете написать свои собственные застежки-молнии и распаковки для генерации и обработки дополнительного поля.
4.5.5 -NTFS Extra Field (0x000a):
The following is the layout of the NTFS attributes
"extra" block. (Note: At this time the Mtime, Atime
and Ctime values MAY be used on any WIN32 system.)
Note: all fields stored in Intel low-byte/high-byte order.
Value Size Description
----- ---- -----------
(NTFS) 0x000a 2 bytes Tag for this "extra" block type
TSize 2 bytes Size of the total "extra" block
Reserved 4 bytes Reserved for future use
Tag1 2 bytes NTFS attribute tag value #1
Size1 2 bytes Size of attribute #1, in bytes
(var) Size1 Attribute #1 data
.
.
.
TagN 2 bytes NTFS attribute tag value #N
SizeN 2 bytes Size of attribute #N, in bytes
(var) SizeN Attribute #N data
For NTFS, values for Tag1 through TagN are as follows:
(currently only one set of attributes is defined for NTFS)
Tag Size Description
----- ---- -----------
0x0001 2 bytes Tag for attribute #1
Size1 2 bytes Size of attribute #1, in bytes
Mtime 8 bytes File last modification time
Atime 8 bytes File last access time
Ctime 8 bytes File creation time