C#でZipファイル作成
ファイルを固めて転送するために、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ファイルができたからあとはアップロード。