ファイルを固めて転送するために、Zipファイルを生成したかったのだけれども、J#のライブラリを使ってZIP圧縮、展開(解凍)、リスト表示を行う: .NET Tips: C#, VB.NET辺りをみると妙に複雑。
下のほうにあった、
.NET Zip Library #ziplib (SharpZipLib)を試してみることにしたんだけれども、ヘルプを探しても見つからない。下のほうに
SharpZipLib - Main Page - SharpDevelop Wiki
があった。
で、.Net Tipsのページにあった複雑なコードと打って変わって、
How to create a Zip File
FastZip fastZip = new FastZip();
bool recurse = true;
fastZip.CreateZip("fileName.zip", @"C:\SourceDirectory", recurse, "");と簡潔なコードが書いてあった。
というわけで、
using ICSharpCode.SharpZipLib.Zip;
namespace Test{
public class ZipTest{
public void CreateZipArchive(String filename, String target)
{
FastZip zip = new FastZip();
zip.CreateZip(filename, target, true, "^(?!Thumbs.db)");
}
というようなコードを書いて動かしてみた。うむ。問題ない。
チョット詰まったのは、第4引数。
これは、「アーカイブに含めるファイルのパターン」を正規表現で記述する。つまり含めないファイルを列挙する場合は、上みたいに書くといい。
全てのファイルを含める場合には空文字列にすればいい。
第5引数を指定する場合は、「アーカイブに含めるディレクトリのパターン」を正規表現で記述する。
結局これはヘルプには書いていなかったので、ソースコードを読みました…。
というわけで。zipファイルができたからあとはアップロード。