.netで圧縮

なぜMicrosoftは.netでzip圧縮のサポートをしないのかよくわからないけど。

標準(?)で使えるのもを幾つか。
ZipPackage
ただ、これは本来のzip圧縮とは少々異なり実用には耐えられない。
変なファイルが出来るとか、圧縮率が悪いとか。暗号化とか。

using ( var package = Package.Open(@"c:\temp\a.zip", FileMode.Create) ) {
	var partUriDocument = PackUriHelper.CreatePartUri(
						new Uri( "a\\a.bin", UriKind.Relative ) );
	var packagePartDocument =
				package.CreatePart( partUriDocument,
								MediaTypeNames.Application.Octet );

	using ( var sm = packagePartDocument.GetStream() ) {
		sm.WriteByte(1);
	}
}

GZip
4.0からは4Gの壁も乗り越えたとか。圧縮率も良くなったらしい。*1

using ( var fs = new FileStream( @"c:\temp\b.gz", FileMode.Create ) ) {
	using ( var gzipStrm = new GZipStream( fs, CompressionMode.Compress ) ) {
		gzipStrm.WriteByte( 1 );
	}
}

J#
今はもう亡きJ#の遺産