Das ist auch egal.
NTFS macht der Dateisystemtreiber.
Das hat nichts mit ZIP zu tun.
Es gibt nur noch das ZipFolder-Addon im Explorer und das kennt die MinimalAusstattung der ZIP-Spezifikation. (inkl. Zip64)
im Dateisystem:
FindFirstFile/GetFileAttribute/... mit FILE_ATTRIBUTE_COMPRESSED zum Lesen,
oder DeviceIoControl mit FSCTL_SET_COMPRESSION zum Setzen
und GetCompressedFileSize für die "reale" Dateigröße"
Es gibt im .NET / C# eine Zip-Klasse System.IO.Compression.ZipFile (die
Win32-
API hat sowas wohl nicht)
https://docs.microsoft.com/en-us/win...-decompression
Der Lempel-Ziv-Algorithmus ist OpenSource von Microsoft auf GitHub zu finden.
Aber es gibt auch passende APIs dafür, um es selbst im Programm zu nutzen. (außerhalb des NTFS)
https://docs.microsoft.com/en-us/win...ompression-api
https://docs.microsoft.com/de-de/dot...-extract-files
Das ist dann sowas ähliches wie TCompressedStream, womit man die Komprimierung von ZIP einzeln nutzen kann.
Die NTFS-Verschlüsselung ist da schöner gelöst, als die Komprimierung.
FILE_ATTRIBUTE_ENCRYPTED mit EncryptFile, DecryptFile, OpenEncryptedFileRaw usw.