DoboWiki
Top
> .NETプログラミング研究/93 をテンプレートにして作成
.NETプログラミング研究/93 をテンプレートにして作成
開始行:
#title(DotNetZip(Ionic Zip Library)を使ってZIP書庫を作...
#navi(.NETプログラミング研究)
#contents
*DotNetZip(Ionic Zip Library)を使ってZIP書庫を作成する ...
今回から、フリー([[Microsoft Public License (Ms-PL)>http...
DotNetZipは、.NET Framework 2.0以上で使用できます。
この記事では、バージョン1.8のDotNetZipを使用しています。
DotNetZipは、[[CodePlexのDotNetZipのサイト>http://www.cod...
**ZIP書庫を作成する基本的な方法 [#p192a23f]
ZIP書庫を作成してファイルやフォルダを圧縮する手順を簡単に...
+ZipFileオブジェクトを作成する。
+AddFileメソッドを使って、圧縮するファイルを追加する。Add...
+Saveメソッドを使って、ZIP書庫を作成する。
以下のコードでは、1つのファイルと1つのフォルダを圧縮してZ...
#code(vbnet){{
'作成するZIP書庫のパス
Dim zipPath As String = "C:\test.zip"
'圧縮するファイルのパス
Dim filePath As String = "C:\readme.txt"
'圧縮するフォルダのパス
Dim folderPath As String = "C:\doc"
'ZipFileを作成する
Using zip As New Ionic.Zip.ZipFile()
'IBM437でエンコードできないファイル名やコメントをShif...
zip.ProvisionalAlternateEncoding = _
System.Text.Encoding.GetEncoding("shift_jis")
'IBM437でエンコードできないファイル名やコメントをUTF-...
'zip.UseUnicodeAsNecessary = True
'圧縮レベルを変更
zip.CompressionLevel = Ionic.Zlib.CompressionLevel.Be...
'圧縮せずに格納する
'zip.ForceNoCompression = True
'必要な時はZIP64で圧縮する。デフォルトはNever。
zip.UseZip64WhenSaving = Ionic.Zip.Zip64Option.AsNece...
'エラーが出てもスキップする。デフォルトはThrow。
zip.ZipErrorAction = Ionic.Zip.ZipErrorAction.Skip
'ZIP書庫にコメントを付ける
zip.Comment = "こんにちは。"
'パスワードを付ける
zip.Password = "password"
'AES 256ビット暗号化
zip.Encryption = Ionic.Zip.EncryptionAlgorithm.WinZip...
'ファイルを追加する
zip.AddFile(filePath)
'書庫内に"doc"というディレクトリを作って
' そこにfilePathを格納するには次のようにする
'zip.AddFile(filePath, "doc")
'フォルダを追加する
zip.AddDirectory(folderPath)
'書庫内に"doc"というディレクトリを作って
' そこにfolderPathを格納するには次のようにする
'zip.AddDirectory(folderPath, "doc")
'ZIP書庫を作成する
zip.Save(zipPath)
End Using
}}
#code(csharp){{
//作成するZIP書庫のパス
string zipPath = @"C:\test.zip";
//圧縮するファイルのパス
string filePath = @"C:\readme.txt";
//圧縮するフォルダのパス
string folderPath = @"C:\doc";
//ZipFileを作成する
using (Ionic.Zip.ZipFile zip = new Ionic.Zip.ZipFile())
{
//IBM437でエンコードできないファイル名やコメントをShi...
zip.ProvisionalAlternateEncoding =
System.Text.Encoding.GetEncoding("shift_jis");
//IBM437でエンコードできないファイル名やコメントをUTF...
//zip.UseUnicodeAsNecessary = true;
//圧縮レベルを変更
zip.CompressionLevel = Ionic.Zlib.CompressionLevel.Be...
//圧縮せずに格納する
//zip.ForceNoCompression = true;
//必要な時はZIP64で圧縮する。デフォルトはNever。
zip.UseZip64WhenSaving = Ionic.Zip.Zip64Option.AsNece...
//エラーが出てもスキップする。デフォルトはThrow。
zip.ZipErrorAction = Ionic.Zip.ZipErrorAction.Skip;
//ZIP書庫にコメントを付ける
zip.Comment = "こんにちは。";
//パスワードを付ける
zip.Password = "password";
//AES 256ビット暗号化
zip.Encryption = Ionic.Zip.EncryptionAlgorithm.WinZip...
//ファイルを追加する
zip.AddFile(filePath);
//書庫内に"doc"というディレクトリを作って
// そこにfilePathを格納するには次のようにする
//zip.AddFile(filePath, "doc");
//フォルダを追加する
zip.AddDirectory(folderPath);
//書庫内に"doc"というディレクトリを作って
// そこにfolderPathを格納するには次のようにする
//zip.AddDirectory(folderPath, "doc");
//ZIP書庫を作成する
zip.Save(zipPath);
}
}}
この例では、ProvisionalAlternateEncodingプロパティを使っ...
***追加するファイルごとに設定を変更する [#x564fb9d]
Password、Encryption、ProvisionalAlternateEncoding、ZipEr...
#code(vbnet){{
'ZipFileを作成する
Using zip As New Ionic.Zip.ZipFile(System.Text.Encoding.G...
'パスワードを設定してファイルを追加
zip.Password = "11111111"
zip.AddFile("C:\1.txt")
'パスワードを変更してファイルを追加
zip.Password = "22222222"
zip.AddFile("C:\2.txt")
'ZIP書庫を作成する
zip.Save("C:\test.zip")
End Using
}}
#code(csharp){{
//ZipFileを作成する
using (Ionic.Zip.ZipFile zip =
new Ionic.Zip.ZipFile(System.Text.Encoding.GetEncodin...
{
//パスワードを設定してファイルを追加
zip.Password = "11111111";
zip.AddFile(@"C:\1.txt");
//パスワードを変更してファイルを追加
zip.Password = "22222222";
zip.AddFile(@"C:\2.txt");
//ZIP書庫を作成する
zip.Save(@"C:\test.zip");
}
}}
追加するファイルごとに設定を変更する別の方法としては、Add...
#code(vbnet){{
'ZipFileを作成する
Using zip As New Ionic.Zip.ZipFile(System.Text.Encoding.G...
'パスワードや更新日時を設定してファイルを追加
Dim entry1 As Ionic.Zip.ZipEntry = zip.AddFile("C:\1....
entry1.Password = "11111111"
entry1.LastModified = DateTime.Now
'パスワードやコメントを変更してファイルを追加
Dim entry2 As Ionic.Zip.ZipEntry = zip.AddFile("C:\2....
entry2.Password = "22222222"
entry2.Comment = "コメントです"
'ZIP書庫を作成する
zip.Save("C:\test.zip")
End Using
}}
#code(csharp){{
//ZipFileを作成する
using (Ionic.Zip.ZipFile zip =
new Ionic.Zip.ZipFile(System.Text.Encoding.GetEncodin...
{
//パスワードや更新日時を設定してファイルを追加
Ionic.Zip.ZipEntry entry1 = zip.AddFile(@"C:\1.txt");
entry1.Password = "11111111";
entry1.LastModified = DateTime.Now;
//パスワードやコメントを変更してファイルを追加
Ionic.Zip.ZipEntry entry2 = zip.AddFile(@"C:\2.txt");
entry2.Password = "22222222";
entry2.Comment = "コメントです";
//ZIP書庫を作成する
zip.Save(@"C:\test.zip");
}
}}
**特定のファイルのみを圧縮する [#la91b1f6]
例えば、拡張子が".txt"のファイルだけを圧縮するなどのよう...
下の例では、フォルダ"C:\doc"以下にあるファイルの内、拡張...
#code(vbnet){{
'作成するZIP書庫のパス
Dim zipPath As String = "C:\test.zip"
'圧縮するファイルの定義
Dim selectionCriteria As String = "*.txt"
'圧縮するファイルのあるフォルダのパス
Dim directoryOnDisk As String = "C:\doc"
'圧縮したファイルを格納する書庫内のディレクトリのパス
Dim directoryPathInArchive As String = ""
'サブフォルダも対象とするか
Dim recurseDirectories As Boolean = True
'ZipFileを作成する
Using zip As New Ionic.Zip.ZipFile()
zip.ProvisionalAlternateEncoding = _
System.Text.Encoding.GetEncoding("shift_jis")
'指定されたファイルを追加する
zip.AddSelectedFiles(selectionCriteria, directoryOnDi...
directoryPathInArchive, recurseD...
'ZIP書庫を作成する
zip.Save(zipPath)
End Using
}}
#code(csharp){{
//作成するZIP書庫のパス
string zipPath = @"C:\test.zip";
//圧縮するファイルの定義
string selectionCriteria = "*.txt";
//圧縮するファイルのあるフォルダのパス
string directoryOnDisk = @"C:\doc";
//圧縮したファイルを格納する書庫内のディレクトリのパス
string directoryPathInArchive = "";
//サブフォルダも対象とするか
bool recurseDirectories = true;
//ZipFileを作成する
using (Ionic.Zip.ZipFile zip = new Ionic.Zip.ZipFile())
{
zip.ProvisionalAlternateEncoding =
System.Text.Encoding.GetEncoding("shift_jis");
//指定されたファイルを追加する
zip.AddSelectedFiles(selectionCriteria, directoryOnDi...
directoryPathInArchive, recurseDirectories);
//ZIP書庫を作成する
zip.Save(zipPath);
}
}}
AddSelectedFilesメソッドの3番目のパラメータdirectoryPathI...
***selectionCriteriaの書式 [#x28cfc1e]
実はAddSelectedFilesメソッドはもっと多機能で、ファイルの...
例えば、ファイルのサイズが100バイト未満のファイルを対象と...
更新日時が「2009年1月1日12時0分0秒以降」のファイルを対象...
ファイルの属性が隠しファイルでないファイルを対象とするな...
先のコードでは拡張子が".txt"のファイルを対象とするためにs...
さらに複数の条件を「AND」や「OR」でつないだり、括弧で優先...
**自己展開書庫(SFX)を作成する [#l812752b]
DotNetZipの大きな特徴は、自己展開書庫(SFX)を作成できる...
自己展開書庫を作成するには、今までSaveメソッドを使ってい...
#code(vbnet){{
'圧縮するファイルのあるフォルダのパス
Dim folderPath As String = "C:\doc"
'作成する自己展開書庫のパス
Dim exeToGenerate As String = "C:\test.exe"
'Windowsアプリケーションとするか、コンソールアプリケーシ...
Dim flavor As Ionic.Zip.SelfExtractorFlavor = _
Ionic.Zip.SelfExtractorFlavor.WinFormsApplication
'デフォルトの展開先のフォルダパス
Dim defaultExtractDirectory As String = "C:\test"
'展開後実行するコマンド
Dim postExtractCommandToExecute As String = "readme.txt"
'作成するEXEファイルのアイコンにするアイコンファイルのパス
Dim iconFile As String = Nothing
'ZipFileを作成する
Using zip As New Ionic.Zip.ZipFile()
'IBM437でエンコードできないファイル名やコメントをUTF-...
zip.UseUnicodeAsNecessary = True
'フォルダを追加する
zip.AddDirectory(folderPath)
'自己展開書庫を作成する
zip.SaveSelfExtractor(exeToGenerate, flavor, _
defaultExtractDirectory, postExtractCommandToExec...
End Using
}}
#code(csharp){{
//圧縮するファイルのあるフォルダのパス
string folderPath = @"C:\doc";
//作成する自己展開書庫のパス
string exeToGenerate = @"C:\test.exe";
//Windowsアプリケーションとするか、コンソールアプリケーシ...
Ionic.Zip.SelfExtractorFlavor flavor =
Ionic.Zip.SelfExtractorFlavor.WinFormsApplication;
//デフォルトの展開先のフォルダパス
string defaultExtractDirectory = @"C:\test";
//展開後実行するコマンド
string postExtractCommandToExecute = "readme.txt";
//作成するEXEファイルのアイコンにするアイコンファイルのパス
string iconFile = null;
//ZipFileを作成する
using (Ionic.Zip.ZipFile zip = new Ionic.Zip.ZipFile())
{
//IBM437でエンコードできないファイル名やコメントをUTF...
zip.UseUnicodeAsNecessary = true;
//フォルダを追加する
zip.AddDirectory(folderPath);
//自己展開書庫を作成する
zip.SaveSelfExtractor(exeToGenerate, flavor,
defaultExtractDirectory, postExtractCommandToExec...
}
}}
SaveSelfExtractorメソッドのオーバーロードには幾つかありま...
私が試した限りでは、ProvisionalAlternateEncodingプロパテ...
上記のコードで作成されたEXEファイルを実行すると、下の図の...
&ref(./dotnetzip1.png);
flavorパラメータをConsoleApplicationにすると、コンソール...
#pre{{
C:\Documents and Settings\user>C:\test.exe -?
DotNetZip Command-Line Self Extractor, see http://DotNetZ...
usage:
test.exe [-o|-n] [-v] [-p password] [<directory>]
Extracts entries from the archive. If any files to be...
exist, the program will stop.
Options:
-o - overwrite any existing files upon extraction.
-n - do not overwrite any existing files upon extra...
-v - verbose.
default extract dir: C:\test
test.exe -l
Lists entries in the archive.
}}
**次回予告 [#r0b2ef08]
次回はDotNetZipを使ってZIP書庫を展開する方法を紹介する予...
**コメント [#uc8913c6]
- 大変参考にさせていただいております。 ver1.9系では、エン...
#comment
//これより下は編集しないでください
#pageinfo([[:Category/.NET]],2009-11-30 (月) 02:23:11,DOB...
終了行:
#title(DotNetZip(Ionic Zip Library)を使ってZIP書庫を作...
#navi(.NETプログラミング研究)
#contents
*DotNetZip(Ionic Zip Library)を使ってZIP書庫を作成する ...
今回から、フリー([[Microsoft Public License (Ms-PL)>http...
DotNetZipは、.NET Framework 2.0以上で使用できます。
この記事では、バージョン1.8のDotNetZipを使用しています。
DotNetZipは、[[CodePlexのDotNetZipのサイト>http://www.cod...
**ZIP書庫を作成する基本的な方法 [#p192a23f]
ZIP書庫を作成してファイルやフォルダを圧縮する手順を簡単に...
+ZipFileオブジェクトを作成する。
+AddFileメソッドを使って、圧縮するファイルを追加する。Add...
+Saveメソッドを使って、ZIP書庫を作成する。
以下のコードでは、1つのファイルと1つのフォルダを圧縮してZ...
#code(vbnet){{
'作成するZIP書庫のパス
Dim zipPath As String = "C:\test.zip"
'圧縮するファイルのパス
Dim filePath As String = "C:\readme.txt"
'圧縮するフォルダのパス
Dim folderPath As String = "C:\doc"
'ZipFileを作成する
Using zip As New Ionic.Zip.ZipFile()
'IBM437でエンコードできないファイル名やコメントをShif...
zip.ProvisionalAlternateEncoding = _
System.Text.Encoding.GetEncoding("shift_jis")
'IBM437でエンコードできないファイル名やコメントをUTF-...
'zip.UseUnicodeAsNecessary = True
'圧縮レベルを変更
zip.CompressionLevel = Ionic.Zlib.CompressionLevel.Be...
'圧縮せずに格納する
'zip.ForceNoCompression = True
'必要な時はZIP64で圧縮する。デフォルトはNever。
zip.UseZip64WhenSaving = Ionic.Zip.Zip64Option.AsNece...
'エラーが出てもスキップする。デフォルトはThrow。
zip.ZipErrorAction = Ionic.Zip.ZipErrorAction.Skip
'ZIP書庫にコメントを付ける
zip.Comment = "こんにちは。"
'パスワードを付ける
zip.Password = "password"
'AES 256ビット暗号化
zip.Encryption = Ionic.Zip.EncryptionAlgorithm.WinZip...
'ファイルを追加する
zip.AddFile(filePath)
'書庫内に"doc"というディレクトリを作って
' そこにfilePathを格納するには次のようにする
'zip.AddFile(filePath, "doc")
'フォルダを追加する
zip.AddDirectory(folderPath)
'書庫内に"doc"というディレクトリを作って
' そこにfolderPathを格納するには次のようにする
'zip.AddDirectory(folderPath, "doc")
'ZIP書庫を作成する
zip.Save(zipPath)
End Using
}}
#code(csharp){{
//作成するZIP書庫のパス
string zipPath = @"C:\test.zip";
//圧縮するファイルのパス
string filePath = @"C:\readme.txt";
//圧縮するフォルダのパス
string folderPath = @"C:\doc";
//ZipFileを作成する
using (Ionic.Zip.ZipFile zip = new Ionic.Zip.ZipFile())
{
//IBM437でエンコードできないファイル名やコメントをShi...
zip.ProvisionalAlternateEncoding =
System.Text.Encoding.GetEncoding("shift_jis");
//IBM437でエンコードできないファイル名やコメントをUTF...
//zip.UseUnicodeAsNecessary = true;
//圧縮レベルを変更
zip.CompressionLevel = Ionic.Zlib.CompressionLevel.Be...
//圧縮せずに格納する
//zip.ForceNoCompression = true;
//必要な時はZIP64で圧縮する。デフォルトはNever。
zip.UseZip64WhenSaving = Ionic.Zip.Zip64Option.AsNece...
//エラーが出てもスキップする。デフォルトはThrow。
zip.ZipErrorAction = Ionic.Zip.ZipErrorAction.Skip;
//ZIP書庫にコメントを付ける
zip.Comment = "こんにちは。";
//パスワードを付ける
zip.Password = "password";
//AES 256ビット暗号化
zip.Encryption = Ionic.Zip.EncryptionAlgorithm.WinZip...
//ファイルを追加する
zip.AddFile(filePath);
//書庫内に"doc"というディレクトリを作って
// そこにfilePathを格納するには次のようにする
//zip.AddFile(filePath, "doc");
//フォルダを追加する
zip.AddDirectory(folderPath);
//書庫内に"doc"というディレクトリを作って
// そこにfolderPathを格納するには次のようにする
//zip.AddDirectory(folderPath, "doc");
//ZIP書庫を作成する
zip.Save(zipPath);
}
}}
この例では、ProvisionalAlternateEncodingプロパティを使っ...
***追加するファイルごとに設定を変更する [#x564fb9d]
Password、Encryption、ProvisionalAlternateEncoding、ZipEr...
#code(vbnet){{
'ZipFileを作成する
Using zip As New Ionic.Zip.ZipFile(System.Text.Encoding.G...
'パスワードを設定してファイルを追加
zip.Password = "11111111"
zip.AddFile("C:\1.txt")
'パスワードを変更してファイルを追加
zip.Password = "22222222"
zip.AddFile("C:\2.txt")
'ZIP書庫を作成する
zip.Save("C:\test.zip")
End Using
}}
#code(csharp){{
//ZipFileを作成する
using (Ionic.Zip.ZipFile zip =
new Ionic.Zip.ZipFile(System.Text.Encoding.GetEncodin...
{
//パスワードを設定してファイルを追加
zip.Password = "11111111";
zip.AddFile(@"C:\1.txt");
//パスワードを変更してファイルを追加
zip.Password = "22222222";
zip.AddFile(@"C:\2.txt");
//ZIP書庫を作成する
zip.Save(@"C:\test.zip");
}
}}
追加するファイルごとに設定を変更する別の方法としては、Add...
#code(vbnet){{
'ZipFileを作成する
Using zip As New Ionic.Zip.ZipFile(System.Text.Encoding.G...
'パスワードや更新日時を設定してファイルを追加
Dim entry1 As Ionic.Zip.ZipEntry = zip.AddFile("C:\1....
entry1.Password = "11111111"
entry1.LastModified = DateTime.Now
'パスワードやコメントを変更してファイルを追加
Dim entry2 As Ionic.Zip.ZipEntry = zip.AddFile("C:\2....
entry2.Password = "22222222"
entry2.Comment = "コメントです"
'ZIP書庫を作成する
zip.Save("C:\test.zip")
End Using
}}
#code(csharp){{
//ZipFileを作成する
using (Ionic.Zip.ZipFile zip =
new Ionic.Zip.ZipFile(System.Text.Encoding.GetEncodin...
{
//パスワードや更新日時を設定してファイルを追加
Ionic.Zip.ZipEntry entry1 = zip.AddFile(@"C:\1.txt");
entry1.Password = "11111111";
entry1.LastModified = DateTime.Now;
//パスワードやコメントを変更してファイルを追加
Ionic.Zip.ZipEntry entry2 = zip.AddFile(@"C:\2.txt");
entry2.Password = "22222222";
entry2.Comment = "コメントです";
//ZIP書庫を作成する
zip.Save(@"C:\test.zip");
}
}}
**特定のファイルのみを圧縮する [#la91b1f6]
例えば、拡張子が".txt"のファイルだけを圧縮するなどのよう...
下の例では、フォルダ"C:\doc"以下にあるファイルの内、拡張...
#code(vbnet){{
'作成するZIP書庫のパス
Dim zipPath As String = "C:\test.zip"
'圧縮するファイルの定義
Dim selectionCriteria As String = "*.txt"
'圧縮するファイルのあるフォルダのパス
Dim directoryOnDisk As String = "C:\doc"
'圧縮したファイルを格納する書庫内のディレクトリのパス
Dim directoryPathInArchive As String = ""
'サブフォルダも対象とするか
Dim recurseDirectories As Boolean = True
'ZipFileを作成する
Using zip As New Ionic.Zip.ZipFile()
zip.ProvisionalAlternateEncoding = _
System.Text.Encoding.GetEncoding("shift_jis")
'指定されたファイルを追加する
zip.AddSelectedFiles(selectionCriteria, directoryOnDi...
directoryPathInArchive, recurseD...
'ZIP書庫を作成する
zip.Save(zipPath)
End Using
}}
#code(csharp){{
//作成するZIP書庫のパス
string zipPath = @"C:\test.zip";
//圧縮するファイルの定義
string selectionCriteria = "*.txt";
//圧縮するファイルのあるフォルダのパス
string directoryOnDisk = @"C:\doc";
//圧縮したファイルを格納する書庫内のディレクトリのパス
string directoryPathInArchive = "";
//サブフォルダも対象とするか
bool recurseDirectories = true;
//ZipFileを作成する
using (Ionic.Zip.ZipFile zip = new Ionic.Zip.ZipFile())
{
zip.ProvisionalAlternateEncoding =
System.Text.Encoding.GetEncoding("shift_jis");
//指定されたファイルを追加する
zip.AddSelectedFiles(selectionCriteria, directoryOnDi...
directoryPathInArchive, recurseDirectories);
//ZIP書庫を作成する
zip.Save(zipPath);
}
}}
AddSelectedFilesメソッドの3番目のパラメータdirectoryPathI...
***selectionCriteriaの書式 [#x28cfc1e]
実はAddSelectedFilesメソッドはもっと多機能で、ファイルの...
例えば、ファイルのサイズが100バイト未満のファイルを対象と...
更新日時が「2009年1月1日12時0分0秒以降」のファイルを対象...
ファイルの属性が隠しファイルでないファイルを対象とするな...
先のコードでは拡張子が".txt"のファイルを対象とするためにs...
さらに複数の条件を「AND」や「OR」でつないだり、括弧で優先...
**自己展開書庫(SFX)を作成する [#l812752b]
DotNetZipの大きな特徴は、自己展開書庫(SFX)を作成できる...
自己展開書庫を作成するには、今までSaveメソッドを使ってい...
#code(vbnet){{
'圧縮するファイルのあるフォルダのパス
Dim folderPath As String = "C:\doc"
'作成する自己展開書庫のパス
Dim exeToGenerate As String = "C:\test.exe"
'Windowsアプリケーションとするか、コンソールアプリケーシ...
Dim flavor As Ionic.Zip.SelfExtractorFlavor = _
Ionic.Zip.SelfExtractorFlavor.WinFormsApplication
'デフォルトの展開先のフォルダパス
Dim defaultExtractDirectory As String = "C:\test"
'展開後実行するコマンド
Dim postExtractCommandToExecute As String = "readme.txt"
'作成するEXEファイルのアイコンにするアイコンファイルのパス
Dim iconFile As String = Nothing
'ZipFileを作成する
Using zip As New Ionic.Zip.ZipFile()
'IBM437でエンコードできないファイル名やコメントをUTF-...
zip.UseUnicodeAsNecessary = True
'フォルダを追加する
zip.AddDirectory(folderPath)
'自己展開書庫を作成する
zip.SaveSelfExtractor(exeToGenerate, flavor, _
defaultExtractDirectory, postExtractCommandToExec...
End Using
}}
#code(csharp){{
//圧縮するファイルのあるフォルダのパス
string folderPath = @"C:\doc";
//作成する自己展開書庫のパス
string exeToGenerate = @"C:\test.exe";
//Windowsアプリケーションとするか、コンソールアプリケーシ...
Ionic.Zip.SelfExtractorFlavor flavor =
Ionic.Zip.SelfExtractorFlavor.WinFormsApplication;
//デフォルトの展開先のフォルダパス
string defaultExtractDirectory = @"C:\test";
//展開後実行するコマンド
string postExtractCommandToExecute = "readme.txt";
//作成するEXEファイルのアイコンにするアイコンファイルのパス
string iconFile = null;
//ZipFileを作成する
using (Ionic.Zip.ZipFile zip = new Ionic.Zip.ZipFile())
{
//IBM437でエンコードできないファイル名やコメントをUTF...
zip.UseUnicodeAsNecessary = true;
//フォルダを追加する
zip.AddDirectory(folderPath);
//自己展開書庫を作成する
zip.SaveSelfExtractor(exeToGenerate, flavor,
defaultExtractDirectory, postExtractCommandToExec...
}
}}
SaveSelfExtractorメソッドのオーバーロードには幾つかありま...
私が試した限りでは、ProvisionalAlternateEncodingプロパテ...
上記のコードで作成されたEXEファイルを実行すると、下の図の...
&ref(./dotnetzip1.png);
flavorパラメータをConsoleApplicationにすると、コンソール...
#pre{{
C:\Documents and Settings\user>C:\test.exe -?
DotNetZip Command-Line Self Extractor, see http://DotNetZ...
usage:
test.exe [-o|-n] [-v] [-p password] [<directory>]
Extracts entries from the archive. If any files to be...
exist, the program will stop.
Options:
-o - overwrite any existing files upon extraction.
-n - do not overwrite any existing files upon extra...
-v - verbose.
default extract dir: C:\test
test.exe -l
Lists entries in the archive.
}}
**次回予告 [#r0b2ef08]
次回はDotNetZipを使ってZIP書庫を展開する方法を紹介する予...
**コメント [#uc8913c6]
- 大変参考にさせていただいております。 ver1.9系では、エン...
#comment
//これより下は編集しないでください
#pageinfo([[:Category/.NET]],2009-11-30 (月) 02:23:11,DOB...
ページ名:
▲
▼
[
トップ
] [
新規
|
子ページ作成
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]