.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 ); } }