ZipArchiveMode 列挙型
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
Zip アーカイブのエントリを操作するための値を指定します。
public enum class ZipArchiveMode
public enum ZipArchiveMode
type ZipArchiveMode =
Public Enum ZipArchiveMode
- 継承
フィールド
Create | 1 | 新しいアーカイブ エントリの作成に限り許可されます。 |
Read | 0 | 新しいアーカイブ エントリの読み込みに限り許可されます。 |
Update | 2 | 読み取りと書き込みの両方の操作がアーカイブ エントリで許可されます。 |
注釈
モードを Read に設定すると、基になるファイルまたはストリームは読み取りをサポートする必要がありますが、シークをサポートする必要はありません。 基になるファイルまたはストリームがシークをサポートしている場合、ファイルは要求されるとアーカイブから読み取られます。 基になるファイルまたはストリームがシークをサポートしていない場合、アーカイブ全体がメモリに保持されます。
モードを Create に設定する場合、基になるファイルまたはストリームは書き込みをサポートする必要がありますが、シークをサポートする必要はありません。 アーカイブ内の各エントリは、書き込み用に 1 回だけ開くことができます。 1 つのエントリを作成すると、データは使用可能になるとすぐに、基になるストリームまたはファイルに書き込まれます。 メソッドの呼び出しなど、複数のエントリを CreateFromDirectory 作成した場合は、すべてのエントリが作成された後、基になるストリームまたはファイルにデータが書き込まれます。
モードを Update に設定する場合、基になるファイルまたはストリームは読み取り、書き込み、シークをサポートする必要があります。 アーカイブ全体の内容はメモリに保持され、アーカイブが破棄されるまで、基になるファイルまたはストリームにデータは書き込まれなくなります。
次のメソッドには、アーカイブ モードを指定できる という名前 mode
のパラメーターが含まれています。
例
次の例は、オブジェクトの作成時に値を ZipArchiveMode
指定する方法を ZipArchive 示しています。
using System;
using System.IO;
using System.IO.Compression;
namespace ConsoleApplication
{
class Program
{
static void Main(string[] args)
{
using (FileStream zipToOpen = new FileStream(@"c:\users\exampleuser\release.zip", FileMode.Open))
{
using (ZipArchive archive = new ZipArchive(zipToOpen, ZipArchiveMode.Update))
{
ZipArchiveEntry readmeEntry = archive.CreateEntry("Readme.txt");
using (StreamWriter writer = new StreamWriter(readmeEntry.Open()))
{
writer.WriteLine("Information about this package.");
writer.WriteLine("========================");
}
}
}
}
}
}
Imports System.IO
Imports System.IO.Compression
Module Module1
Sub Main()
Using zipToOpen As FileStream = New FileStream("c:\users\exampleuser\release.zip", FileMode.Open)
Using archive As ZipArchive = New ZipArchive(zipToOpen, ZipArchiveMode.Update)
Dim readmeEntry As ZipArchiveEntry = archive.CreateEntry("Readme.txt")
Using writer As StreamWriter = New StreamWriter(readmeEntry.Open())
writer.WriteLine("Information about this package.")
writer.WriteLine("========================")
End Using
End Using
End Using
End Sub
End Module
適用対象
.NET