Archive.Archive

Archive(ArchiveEntrySettings)

の新しいインスタンスを初期化しますArchiveエントリのオプション設定を持つクラス.

public Archive(ArchiveEntrySettings newEntrySettings = null)
パラメータタイプ説明
newEntrySettingsArchiveEntrySettings新たに追加された圧縮と暗号化の設定ArchiveEntry items. 指定しない場合、最も一般的な暗号化なしの Deflate 圧縮が使用されます。

次の例は、既定の設定で 1 つのファイルを圧縮する方法を示しています。

using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    using (var archive = new Archive())
    {
        archive.CreateEntry("data.bin", "file.dat");
        archive.Save(zipFile);
    }
}

関連項目


Archive(Stream, ArchiveLoadOptions, ArchiveEntrySettings)

の新しいインスタンスを初期化しますArchiveクラスと構成エントリのリストは、アーカイブから抽出できます。

public Archive(Stream sourceStream, ArchiveLoadOptions loadOptions = null, 
    ArchiveEntrySettings newEntrySettings = null)
パラメータタイプ説明
sourceStreamStreamアーカイブのソース。
loadOptionsArchiveLoadOptions既存のアーカイブをロードするオプション。
newEntrySettingsArchiveEntrySettings新たに追加された圧縮と暗号化の設定ArchiveEntry items. 指定しない場合、最も一般的な暗号化なしの Deflate 圧縮が使用されます。

例外

例外調子
ArgumentExceptionsourceStreamはシークできません。
InvalidDataExceptionAES の暗号化ヘッダーが WinZip 圧縮方式と矛盾しています。

備考

このコンストラクタは、エントリを解凍しません。見るOpen解凍方法.

次の例では、暗号化されたアーカイブを抽出し、最初のエントリを解凍します。メモリーストリーム.

var fs = File.OpenRead("encrypted.zip");
var extracted = new MemoryStream();
using (Archive archive = new Archive(fs, new ArchiveLoadOptions() { DecryptionPassword = "p@s$" }))
{
    using (var decompressed = archive.Entries[0].Open())
    {
        byte[] b = new byte[8192];
        int bytesRead;
        while (0 < (bytesRead = decompressed.Read(b, 0, b.Length)))
            extracted.Write(b, 0, bytesRead);
    }
}

関連項目


Archive(string, ArchiveLoadOptions, ArchiveEntrySettings)

の新しいインスタンスを初期化しますArchiveクラスと構成エントリのリストは、アーカイブから抽出できます。

public Archive(string path, ArchiveLoadOptions loadOptions = null, 
    ArchiveEntrySettings newEntrySettings = null)
パラメータタイプ説明
pathStringアーカイブ ファイルへの完全修飾パスまたは相対パス。
loadOptionsArchiveLoadOptions既存のアーカイブをロードするオプション。
newEntrySettingsArchiveEntrySettings新たに追加された圧縮と暗号化の設定ArchiveEntry items. 指定しない場合、最も一般的な暗号化なしの Deflate 圧縮が使用されます。

例外

例外調子
ArgumentNullExceptionpath無効である。
SecurityException呼び出し元には、アクセスに必要なアクセス許可がありません。
ArgumentExceptionpathが空であるか、空白のみが含まれているか、無効な文字が含まれています。
UnauthorizedAccessExceptionファイルへのアクセスpath否定された。
PathTooLongException指定されたpath、ファイル名、またはその両方がシステム定義の最大長を超えています。たとえば、Windows ベースのプラットフォームでは、パスは 248 文字未満、ファイル名は 260 文字未満である必要があります。
NotSupportedExceptionファイルpath文字列の途中にコロン (:) が含まれています。

備考

このコンストラクタは、エントリを解凍しません。見るOpen解凍方法.

次の例では、暗号化されたアーカイブを抽出し、最初のエントリを解凍します。メモリーストリーム.

var extracted = new MemoryStream();
using (Archive archive = new Archive("encrypted.zip", new ArchiveLoadOptions() { DecryptionPassword = "p@s$" }))
{
    using (var decompressed = archive.Entries[0].Open())
    {
        byte[] b = new byte[8192];
        int bytesRead;
        while (0 < (bytesRead = decompressed.Read(b, 0, b.Length)))
            extracted.Write(b, 0, bytesRead);
    }
}

関連項目