web-dev-qa-db-ja.com

プログラムでディレクトリをZipファイルに圧縮する方法

任意の数のサブディレクトリを持つことができるディレクトリ全体を単一のZipファイルに圧縮したいと思います。

プログラムで1つのファイルをZipファイルに圧縮することができます。

ディレクトリ全体を圧縮するために、各サブディレクトリをウォークスルーして圧縮する再帰プログラムを考えることができます。

しかし、再帰関数を記述せずに、同様のコードを使用してフォルダー全体を圧縮する簡単な方法はありますか?

16
ashwnacharya

DotNetZip を使用すると、ZipFileクラスにAddDirectory()メソッドがあり、必要な処理を実行できます。

using (var Zip = new Ionic.Zip.ZipFile())
{
    Zip.AddDirectory("DirectoryOnDisk", "rootInZipFile");
    Zip.Save("MyFile.Zip");
}

この例と他の多くの例は codeplexで利用可能 です。

22
Cheeso

これらのAPIの1つを見てください:

5
gautema
ZipFile.CreateFromDirectory(<path of folder you need to Zip>, <path of Zip file with .Zip in the end>, CompressionLevel.Fastest, true);
2
Anonymous