Class GzipArchive

Class GzipArchive

Namespace: Aspose.Zip.Gzip
Assembly: Aspose.Zip.dll (25.1.0)

このクラスはgzipアーカイブファイルを表します。gzipアーカイブを作成または抽出するために使用します。

public class GzipArchive : IArchive, IDisposable, IArchiveFileEntry

継承

objectGzipArchive

実装

IArchive, IDisposable, IArchiveFileEntry

継承されたメンバー

object.GetType(), object.MemberwiseClone(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()

備考

Gzip圧縮アルゴリズムは、LZ77とハフマン符号化の組み合わせであるDEFLATEアルゴリズムに基づいています。

コンストラクタ

GzipArchive()

圧縮のために準備されたAspose.Zip.Gzip.GzipArchiveクラスの新しいインスタンスを初期化します。

public GzipArchive()

次の例は、ファイルを圧縮する方法を示しています。

using (GzipArchive archive = new GzipArchive()) 
{
    archive.SetSource("data.bin");
    archive.Save("archive.gz");
}

GzipArchive(Stream, bool)

解凍のために準備されたAspose.Zip.Gzip.GzipArchiveクラスの新しいインスタンスを初期化します。

public GzipArchive(Stream sourceStream, bool parseHeader = false)

パラメータ

sourceStream Stream

アーカイブのソース。

parseHeader bool

ストリームヘッダーを解析してプロパティ(名前を含む)を特定するかどうか。シーク可能なストリームのみで意味があります。

ストリームからアーカイブを開き、MemoryStreamに抽出します。

var ms = new MemoryStream();
using (GzipArchive archive = new GzipArchive(File.OpenRead("archive.gz")))
  archive.Open().CopyTo(ms);

備考

このコンストラクタは解凍を行いません。解凍のためにはAspose.Zip.Gzip.GzipArchive.Openメソッドを参照してください。

GzipArchive(string, bool)

Aspose.Zip.Gzip.GzipArchiveクラスの新しいインスタンスを初期化します。

public GzipArchive(string path, bool parseHeader = false)

パラメータ

path string

アーカイブファイルへのパス。

parseHeader bool

ストリームヘッダーを解析してプロパティ(名前を含む)を特定するかどうか。シーク可能なストリームのみで意味があります。

パスからファイルのアーカイブを開き、MemoryStreamに抽出します。

var ms = new MemoryStream();
using (GzipArchive archive = new GzipArchive("archive.gz"))
  archive.Open().CopyTo(ms);

備考

このコンストラクタは解凍を行いません。解凍のためにはAspose.Zip.Gzip.GzipArchive.Openメソッドを参照してください。

例外

ArgumentNullException

pathはnullです。

SecurityException

呼び出し元にはアクセスするための必要な権限がありません。

ArgumentException

pathは空であるか、空白のみを含むか、無効な文字を含んでいます。

UnauthorizedAccessException

ファイルpathへのアクセスが拒否されました。

PathTooLongException

指定されたpath、ファイル名、またはその両方がシステム定義の最大長を超えています。たとえば、Windowsベースのプラットフォームでは、パスは248文字未満でなければならず、ファイル名は260文字未満でなければなりません。

NotSupportedException

pathに文字列の中間にコロン(:)が含まれています。

プロパティ

Name

元のファイルの名前。

public string Name { get; }

プロパティ値

string

メソッド

Dispose()

アンマネージリソースを解放、リリース、またはリセットするためにアプリケーション定義のタスクを実行します。

public void Dispose()

Dispose(bool)

アンマネージリソースを解放、リリース、またはリセットするためにアプリケーション定義のタスクを実行します。

protected virtual void Dispose(bool disposing)

パラメータ

disposing bool

マネージリソースを解放すべきかどうか。

Extract(Stream)

指定されたストリームにアーカイブを抽出します。

public void Extract(Stream destination)

パラメータ

destination Stream

宛先ストリーム。書き込み可能でなければなりません。

using (var archive = new GzipArchive("archive.gz"))
{
     archive.Extract(httpResponseStream);
}

例外

ArgumentException

destinationは書き込みをサポートしていません。

InvalidDataException

ストリームが破損しており、有効なデータを含んでいません。

Extract(string)

パスによってファイルにアーカイブを抽出します。

public FileInfo Extract(string path)

パラメータ

path string

宛先ファイルへのパス。ファイルが既に存在する場合は、上書きされます。

戻り値

FileInfo

抽出されたファイルの情報。

例外

ArgumentNullException

pathはnullです。

SecurityException

呼び出し元にはアクセスするための必要な権限がありません。

ArgumentException

pathは空であるか、空白のみを含むか、無効な文字を含んでいます。

UnauthorizedAccessException

ファイルpathへのアクセスが拒否されました。

PathTooLongException

指定されたpath、ファイル名、またはその両方がシステム定義の最大長を超えています。たとえば、Windowsベースのプラットフォームでは、パスは248文字未満でなければならず、ファイル名は260文字未満でなければなりません。

NotSupportedException

pathに文字列の中間にコロン(:)が含まれています。

InvalidDataException

ストリームが破損しており、有効なデータを含んでいません。

ExtractToDirectory(string)

アーカイブの内容を指定されたディレクトリに抽出します。

public void ExtractToDirectory(string destinationDirectory)

パラメータ

destinationDirectory string

抽出されたファイルを配置するディレクトリへのパス。

備考

ディレクトリが存在しない場合は、作成されます。

例外

ArgumentNullException

destinationDirectoryはnullです。

PathTooLongException

指定されたパス、ファイル名、またはその両方がシステム定義の最大長を超えています。たとえば、Windowsベースのプラットフォームでは、パスは248文字未満でなければならず、ファイル名は260文字未満でなければなりません。

SecurityException

呼び出し元には既存のディレクトリにアクセスするための必要な権限がありません。

NotSupportedException

ディレクトリが存在しない場合、パスにドライブラベルの一部ではないコロン文字(:)が含まれています。

ArgumentException

destinationDirectoryはゼロ長の文字列であるか、空白のみを含むか、無効な文字が1つ以上含まれています。無効な文字をクエリするには、System.IO.Path.GetInvalidPathCharsメソッドを使用できます。 -または- パスがコロン文字(:)で始まるか、コロン文字のみを含む。

IOException

指定されたパスのディレクトリがファイルです。-または- ネットワーク名が不明です。

Open()

抽出のためにアーカイブを開き、アーカイブ内容のストリームを提供します。

public Stream Open()

戻り値

Stream

アーカイブの内容を表すストリーム。

アーカイブを抽出し、抽出された内容をファイルストリームにコピーします。

using (var archive = new GzipArchive("archive.gz"))
{
    using (var extracted = File.Create("data.bin"))
    {
        var unpacked = archive.Open();
        byte[] b = new byte[8192];
        int bytesRead;
        while (0 < (bytesRead = unpacked.Read(b, 0, b.Length)))
            extracted.Write(b, 0, bytesRead);
    }            
}

.NET 4.0以降ではStream.CopyToメソッドを使用できます: `unpacked.CopyTo(extracted);`

備考

ストリームから読み取ってファイルの元の内容を取得します。例のセクションを参照してください。

Save(Stream)

提供されたストリームにアーカイブを保存します。

public void Save(Stream outputStream)

パラメータ

outputStream Stream

宛先ストリーム。

圧縮データをhttpレスポンスストリームに書き込みます。

using (var archive = new GzipArchive()) 
{
    archive.SetSource(new FileInfo("data.bin"));
    archive.Save(httpResponse.OutputStream);
}

備考

outputStreamは書き込み可能でなければなりません。

例外

ArgumentException

outputStreamは書き込み不可です。

InvalidOperationException

ソースが供給されていません。

Save(string)

指定された宛先ファイルにアーカイブを保存します。

public void Save(string destinationFileName)

パラメータ

destinationFileName string

作成されるアーカイブのパス。指定されたファイル名が既存のファイルを指している場合は、上書きされます。

using (var archive = new GzipArchive())
{
    archive.SetSource("data.bin");
    archive.Save("archive.gz");
}

例外

ArgumentNullException

destinationFileNameはnullです。

SecurityException

呼び出し元にはアクセスするための必要な権限がありません。

ArgumentException

destinationFileNameは空であるか、空白のみを含むか、無効な文字を含んでいます。

UnauthorizedAccessException

ファイルdestinationFileNameへのアクセスが拒否されました。

PathTooLongException

指定されたdestinationFileName、ファイル名、またはその両方がシステム定義の最大長を超えています。たとえば、Windowsベースのプラットフォームでは、パスは248文字未満でなければならず、ファイル名は260文字未満でなければなりません。

NotSupportedException

destinationFileNameのファイルが文字列の中間にコロン(:)を含んでいます。

SetSource(Stream)

アーカイブ内で圧縮されるコンテンツを設定します。

public void SetSource(Stream source)

パラメータ

source Stream

アーカイブの入力ストリーム。

using (var archive = new GzipArchive())
{
    archive.SetSource(new MemoryStream(new byte[] { 0x00, 0xFF }));
    archive.Save("archive.gz");
}

SetSource(FileInfo)

アーカイブ内で圧縮されるコンテンツを設定します。

public void SetSource(FileInfo fileInfo)

パラメータ

fileInfo FileInfo

圧縮されるファイルへの参照。

using (var archive = new GzipArchive()) 
{
    archive.SetSource(new FileInfo("data.bin"));
    archive.Save("archive.gz");
}

SetSource(string)

アーカイブ内で圧縮されるコンテンツを設定します。

public void SetSource(string path)

パラメータ

path string

圧縮されるファイルへのパス。

パスからファイルのアーカイブを開き、MemoryStreamに抽出します。

using (var archive = new GzipArchive()) 
{
    archive.SetSource("data.bin");
    archive.Save("archive.gz");
}

例外

ArgumentNullException

pathはnullです。

SecurityException

呼び出し元にはアクセスするための必要な権限がありません。

ArgumentException

pathは空であるか、空白のみを含むか、無効な文字を含んでいます。

UnauthorizedAccessException

ファイルpathへのアクセスが拒否されました。

PathTooLongException

指定されたpath、ファイル名、またはその両方がシステム定義の最大長を超えています。たとえば、Windowsベースのプラットフォームでは、パスは248文字未満でなければならず、ファイル名は260文字未満でなければなりません。

NotSupportedException

pathのファイルが文字列の中間にコロン(:)を含んでいます。

SetSource(TarArchive)

アーカイブ内で圧縮されるコンテンツを設定します。

public void SetSource(TarArchive tarArchive)

パラメータ

tarArchive TarArchive

圧縮されるTarアーカイブ。

using (var tarArchive = new TarArchive())
{
    tarArchive.CreateEntry("first.bin", "data1.bin");
    tarArchive.CreateEntry("second.bin", "data2.bin");
    using (var gzippedArchive = new GzipArchive())
    {
           gzippedArchive.SetSource(tarArchive);
           gzippedArchive.Save("archive.tar.gz");
    }
}

備考

このメソッドを使用して、結合されたtar.gzアーカイブを作成します。

 日本語