任意の数のサブディレクトリを持つことができるディレクトリ全体を単一のZipファイルに圧縮したいと思います。
プログラムで1つのファイルをZipファイルに圧縮することができます。
ディレクトリ全体を圧縮するために、各サブディレクトリをウォークスルーして圧縮する再帰プログラムを考えることができます。
しかし、再帰関数を記述せずに、同様のコードを使用してフォルダー全体を圧縮する簡単な方法はありますか?
DotNetZip を使用すると、ZipFileクラスにAddDirectory()メソッドがあり、必要な処理を実行できます。
using (var Zip = new Ionic.Zip.ZipFile())
{
Zip.AddDirectory("DirectoryOnDisk", "rootInZipFile");
Zip.Save("MyFile.Zip");
}
この例と他の多くの例は codeplexで利用可能 です。
これらのAPIの1つを見てください:
ZipFile.CreateFromDirectory(<path of folder you need to Zip>, <path of Zip file with .Zip in the end>, CompressionLevel.Fastest, true);
あなたは見ることができます C#でフォルダとファイルを圧縮/解凍することに関する記事 。