.NET FrameWork 4.5 以降ではZIPファイルへの圧縮が標準で可能になりました。
System.IO.Compression の ZipArchiveクラス を使用すると、ZIPファイルから特定のファイルのみを取り出したり、ファイルのストリームからZIPファイルを生成することも可能ですが、最も簡単にファイルを圧縮/展開する方法はZipFileの静的メソッドを使用する方法です。
CreateFromDirectory / ExtractToDirectory メソッドでフォルダ単位で 圧縮 / 展開 が可能です。
// ZIPファイルに圧縮する string sourceDirectory = @"D:\Test"; string destinationZip = @"D:\Test.zip"; ZipFile.CreateFromDirectory(sourceDirectory, destinationZip, CompressionLevel.Fastest, true);
// ZIPファイルを展開する string sourceZip = @"D:\Test.zip"; string destinationDirectory = @"D:\Test"; ZipFile.ExtractToDirectory(sourceZip, destinationDirectory);
なお、これらの標準ライブラリに含まれるクラスではパスワード付きのZIPファイルには対応していません。パスワード付きのZIPファイルを扱いたい場合は DotNetZip などのライブラリを使用します。