文字列を ZIP ファイルに保存するには、以下のいずれかのメソッドを使用します。
- OpenWriterメソッド
OpenWriterメソッドを使用してストリームを取得します。文字列を書き込んで閉じます。ストリームに書き込むとデータが圧縮され、ストリームを閉じる時このストリーム全体が zip ファイルに保存されます。
- MemoryStream メソッド
MemoryStream メソッドを使用して、ストリームにデータを書き込んで、このストリームを ZIP ファイルに追加します。
注意: MemoryStream は、OpenWriter メソッドより複雑ですが、とても使いやすいメソッドです。
上記二つのメソッドを以下のコードに示します。そのコードを、Button_Clickイベントに追加します。
Visual Basic コードの書き方
Visual Basic |
コードのコピー
|
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim str As String = "Shall I compare thee to a summer's day? " + "Thou art more lovely and more temperate. " + "Rough winds do shake the darling buds of May, " + "And summer's lease hath all too short a date." Dim zipFile As New C1ZipFile()
zipFile.Create("c:\temp\strings.zip")
' 方法 1: OpenWrite
Dim stream As Stream = zipFile.Entries.OpenWriter("Shakespeare.txt", True)
Dim sw As New StreamWriter(stream)
sw.Write(str)
sw.Close()
' 方法 2: MemoryStream
Dim Stream As New MemoryStream()
Dim sw As New StreamWriter(Stream)
sw.Write(str)
sw.Flush()
Stream.Position = 0
zipFile.Entries.Add(Stream, "Shakespeare2.txt"
Stream.Close()
End Sub
|
C# コードの書き方
C# |
コードのコピー
|
private void button1_Click(object sender, System.EventArgs e) {
string str = "Shall I compare thee to a summer's day? " +
"Thou art more lovely and more temperate. " +
"Rough winds do shake the darling buds of May, "
"And summer's lease hath all too short a date."
C1ZipFile zipFile = new C1ZipFile();
zipFile.Create(@"c:\\temp\strings.zip");
// 方法 1: OpenWriter
Stream stream = zipFile.Entries.OpenWriter("Shakespeare.txt", true);
StreamWriter sw = new StreamWriter(stream);
sw.Write(str)
sw.Close()
// 方法 2: MemoryStream
Stream stream = new MemoryStream()
StreamWriter sw = new StreamWriter(stream);
sw.Write(str);
sw.Flush();
stream.Position = 0;
zipFile.Entries.Add(stream, "Shakespeare2.txt");
stream.Close()
}
|