ソフトウェア開発者の日常

こだわりなく書きたいことを書いていきます。

.NET Framework 4.5からzip形式の圧縮/解凍ができるようになっている

初期状態のままでは機能を利用できないので、プロジェクトに参照の追加を行います。

  • メニューから、[プロジェクト]-[参照の追加]を選ぶと、[参照マネージャー]が表示されます。
    [アセンブリ]-[フレームワーク]をクリックして、[System.IO.Compression.FileSystem]にチェックを入れて、[OK]ボタンをクリックします。
    f:id:AJYA:20150821054638p:plain

これで準備が完了し、操作ができるようになります。

次にソースコードです。
まずファイルの先頭で、次のように記述して、名前空間をインポートします。

Imports System.IO.Compression

zip形式ファイルを解凍するには、次のように記述します。

ZipFile.ExtractToDirectory("C:\test\test.zip", "C:\test\extract")

解凍先のフォルダが存在するとエラーになるので、再利用する場合は、解凍前に削除しておきます。

zip形式にフォルダを圧縮するには、次のように記述します。

ZipFile.CreateFromDirectory("C:\test\extract", "C:\test\test.zip")

圧縮後のファイルが存在した場合はエラーになるので、解凍時と同じように圧縮前に削除しておきます。

名前空間をインポートしない場合は、次のように記述します。

System.IO.Compression.ZipFile.ExtractToDirectory("C:\test\test.zip", "C:\test\extract")
System.IO.Compression.ZipFile.CreateFromDirectory("C:\test\extract", "C:\test\test.zip")