C# ZIPファイルへの圧縮と展開

.NET FrameWork 4.5 以降ではZIPファイルへの圧縮が標準で可能になりました。

System.IO.Compression の ZipArchiveクラス を使用すると、ZIPファイルから特定のファイルのみを取り出したり、ファイルのストリームからZIPファイルを生成することも可能ですが、最も簡単にファイルを圧縮/展開する方法はZipFileの静的メソッドを使用する方法です。

CreateFromDirectory / ExtractToDirectory メソッドでフォルダ単位で 圧縮 / 展開 が可能です。

指定したフォルダをZIPファイルに圧縮

// ZIPファイルに圧縮する
string sourceDirectory = @"D:\Test";
string destinationZip = @"D:\Test.zip";
ZipFile.CreateFromDirectory(sourceDirectory, destinationZip, CompressionLevel.Fastest, true);

ZIPファイルを指定フォルダに展開

// ZIPファイルを展開する
string sourceZip = @"D:\Test.zip";
string destinationDirectory = @"D:\Test";
ZipFile.ExtractToDirectory(sourceZip, destinationDirectory);

なお、これらの標準ライブラリに含まれるクラスではパスワード付きのZIPファイルには対応していません。パスワード付きのZIPファイルを扱いたい場合は DotNetZip などのライブラリを使用します。

使用環境: Visual Studio 2015 .NET Framework 4.5

C# メニューリスト