So ein großer Unterschied scheint mir seltsam, aber Sie sollten bedenken, dass %code% selbst in ZIP komprimiert ist, also gibt es keinen Grund, sie erneut zu komprimieren, die Ergebnisse sind normalerweise größer.
Erstens sind deflate / gzip-Streams bei Komprimierung bemerkenswert schlecht im Vergleich zu zip, 7z usw.
Zweitens sind docx (und alle MS-Dokumentformate mit einem "x" am Ende) nur .zip-Dateien. Benennen Sie ein .docx in .zip um, um den Rauch und die Spiegel zu enthüllen.
Wenn Sie also deflate / gzip über ein docx ausführen, wird die Datei tatsächlich größer. (Es ist so, als würde man eine komprimierte Zip-Datei über eine gezippte Datei mit hoher Komprimierung erstellen.)
Wenn Sie jedoch deflate / gzip über HTML oder eine Textdatei oder etwas, das nicht komprimiert ist, ausführen, wird es tatsächlich einen ziemlich guten Job machen.
Obwohl es stimmt, wie andere gezeigt haben, dass die von Ihnen angegebenen Beispieldateien bereits komprimiert sind, ist das größte Problem, dass im Gegensatz zu den meisten Komprimierungsprogrammen DeflateStream und GZipStream
Ich versuche, deflate / gzip Streams in C # zu verwenden, aber es scheint, dass die Dateien nach der Komprimierung größer sind als vorher.
Zum Beispiel, ich komprimiere eine docx-Datei von 900ko, aber es produziert eine 1.4Mo one!
Und es tut es für jede Datei, die ich ausprobiert habe.
Vielleicht liege ich falsch in der Art, wie ich es mache? Hier ist mein Code:
%Vor%Ich hatte das gleiche Problem beim Komprimieren von Datenbanken mit JPG-Daten. Ich habe dotnetzip ausprobiert - ein Ersatzgeld und eine ordentliche Komprimierung (unterstützt auch Compact Framework!):
%Vor%Ich glaube nicht, dass GzipStream und DeflateStream Dateien komprimieren sollen. Sie hätten wahrscheinlich mehr Glück mit einem Dateikomprimierer wie SharpZipLib .