この記事は機械翻訳されたものです。 記事の文章にポインターを重ねると、原文のテキストが表示されます。 詳細情報
訳文
原文
このトピックはまだ評価されていません - このトピックを評価する

GZipStream クラス

ストリームの圧縮および圧縮解除を実行するために使用するメソッドとプロパティを提供します。

System.Object
  System.MarshalByRefObject
    System.IO.Stream
      System.IO.Compression.GZipStream

名前空間:  System.IO.Compression
アセンブリ:  System (System.dll 内)
public class GZipStream : Stream

GZipStream 型で公開されるメンバーは以下のとおりです。

  名前説明
パブリック メソッドサポート対象: Windows ストア アプリ用 .NETGZipStream(Stream, CompressionLevel)指定したストリームと圧縮レベルを使用して、GZipStream クラスの新しいインスタンスを初期化します。
パブリック メソッドXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETGZipStream(Stream, CompressionMode)指定したストリームと圧縮モードを使用して、GZipStream クラスの新しいインスタンスを初期化します。
パブリック メソッドサポート対象: Windows ストア アプリ用 .NETGZipStream(Stream, CompressionLevel, Boolean)指定したストリームと圧縮レベルを使用して GZipStream クラスの新しいインスタンスを初期化し、必要に応じて、ストリームを開いたままにします。
パブリック メソッドXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETGZipStream(Stream, CompressionMode, Boolean)指定したストリームと圧縮モードを使用して GZipStream クラスの新しいインスタンスを初期化し、必要に応じて、ストリームを開いたままにします。
このページのトップへ
  名前説明
パブリック プロパティXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETBaseStream基になるストリームへの参照を取得します。
パブリック プロパティXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETCanReadファイルの圧縮解除中にストリームが読み取りをサポートするかどうかを示す値を取得します。 (Stream.CanRead をオーバーライドします。)
パブリック プロパティXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETCanSeekストリームがシークをサポートしているかどうかを示す値を取得します。 (Stream.CanSeek をオーバーライドします。)
パブリック プロパティXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETCanTimeout現在のストリームがタイムアウトできるかどうかを決定する値を取得します。 (Stream から継承されます。)
パブリック プロパティXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETCanWriteストリームが書き込みをサポートしているかどうかを示す値を取得します。 (Stream.CanWrite をオーバーライドします。)
パブリック プロパティXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETLengthこのプロパティはサポートされていないため、常に NotSupportedException をスローします。 (Stream.Length をオーバーライドします。)
パブリック プロパティXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETPositionこのプロパティはサポートされていないため、常に NotSupportedException をスローします。 (Stream.Position をオーバーライドします。)
パブリック プロパティXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETReadTimeoutストリームがタイムアウト前に読み取りを試行する期間を決定する値 (ミリ秒単位) を取得または設定します。 (Stream から継承されます。)
パブリック プロパティXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETWriteTimeoutストリームがタイムアウト前に書き込みを試行する期間を決定する値 (ミリ秒単位) を取得または設定します。 (Stream から継承されます。)
このページのトップへ
  名前説明
パブリック メソッドXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートBeginRead非同期の読み込み動作を開始します。 (代わりに Stream.ReadAsync メソッドを使用してください。「解説」を参照してください。) (Stream.BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) をオーバーライドします。)
パブリック メソッドXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートBeginWrite非同期の書き込み操作を開始します。 (代わりに Stream.WriteAsync メソッドを使用してください。「解説」を参照してください。) (Stream.BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) をオーバーライドします。)
パブリック メソッドXNA Framework によるサポートClose現在のストリームを閉じ、現在のストリームに関連付けられているすべてのリソース (ソケット、ファイル ハンドルなど) を解放します。 このメソッドを呼び出す代わりに、ストリームが適切に破棄されていることを確認します。 (Stream から継承されます。)
パブリック メソッド汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETCopyTo(Stream)現在のストリームからバイトを読み取り、別のストリームに書き込みます。 (Stream から継承されます。)
パブリック メソッド汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETCopyTo(Stream, Int32)指定されたバッファー サイズを使用して、現在のストリームからバイトを読み取り、別のストリームに書き込みます。 (Stream から継承されます。)
パブリック メソッドサポート対象: Windows ストア アプリ用 .NETCopyToAsync(Stream)現在のストリームからすべてのバイトを非同期に読み取り、別のストリームに書き込みます。 (Stream から継承されます。)
パブリック メソッドサポート対象: Windows ストア アプリ用 .NETCopyToAsync(Stream, Int32)指定されたバッファー サイズを使用して、現在のストリームからバイトを非同期に読み取り、別のストリームに書き込みます。 (Stream から継承されます。)
パブリック メソッドサポート対象: Windows ストア アプリ用 .NETCopyToAsync(Stream, Int32, CancellationToken)指定されたバッファー サイズを使用して、現在のストリームからバイトを非同期に読み取り、指定されたバッファー サイズとキャンセル トークンを使用して、別のストリームに書き込みます。 (Stream から継承されます。)
パブリック メソッドCreateObjRefリモート オブジェクトとの通信に使用するプロキシの生成に必要な情報をすべて格納しているオブジェクトを作成します。 (MarshalByRefObject から継承されます。)
プロテクト メソッドXNA Framework によるサポートCreateWaitHandle 互換性のために残されています。 WaitHandle オブジェクトを割り当てます。 (Stream から継承されます。)
パブリック メソッドXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETDispose() Stream によって使用されているすべてのリソースを解放します。 (Stream から継承されます。)
プロテクト メソッドXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETDispose(Boolean) GZipStream によって使用されているアンマネージ リソースを解放し、オプションでマネージ リソースも解放します。 (Stream.Dispose(Boolean) をオーバーライドします。)
パブリック メソッドXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートEndRead保留中の非同期読み取りが完了するまで待機します。 (代わりに Stream.ReadAsync メソッドを使用してください。「解説」を参照してください。) (Stream.EndRead(IAsyncResult) をオーバーライドします。)
パブリック メソッドXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートEndWrite非同期書き込み操作の終了を処理します。 (代わりに Stream.WriteAsync メソッドを使用してください。「解説」を参照してください。) (Stream.EndWrite(IAsyncResult) をオーバーライドします。)
パブリック メソッドXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETEquals(Object)指定のオブジェクトが現在のオブジェクトと等しいかどうかを判断します。 (Object から継承されます。)
プロテクト メソッドXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETFinalize オブジェクトがガベジ コレクションにより収集される前に、そのオブジェクトがリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。)
パブリック メソッドXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETFlushこのメソッドの現在の実装には機能しません。 (Stream.Flush() をオーバーライドします。)
パブリック メソッドサポート対象: Windows ストア アプリ用 .NETFlushAsync()ストリームに対応するすべてのバッファーを非同期にクリアし、バッファー内のデータを基になるデバイスに書き込みます。 (Stream から継承されます。)
パブリック メソッドサポート対象: Windows ストア アプリ用 .NETFlushAsync(CancellationToken)ストリームに対応するすべてのバッファーを非同期にクリアし、バッファー内のデータを基になるデバイスに書き込み、キャンセル要求を監視します。 (Stream から継承されます。)
パブリック メソッドXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETGetHashCode特定の型のハッシュ関数として機能します。 (Object から継承されます。)
パブリック メソッドGetLifetimeService対象のインスタンスの有効期間ポリシーを制御する、現在の有効期間サービス オブジェクトを取得します。 (MarshalByRefObject から継承されます。)
パブリック メソッドXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETGetType現在のインスタンスの Type を取得します。 (Object から継承されます。)
パブリック メソッドInitializeLifetimeService対象のインスタンスの有効期間ポリシーを制御する、有効期間サービス オブジェクトを取得します。 (MarshalByRefObject から継承されます。)
プロテクト メソッドXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETMemberwiseClone()現在の Object の簡易コピーを作成します。 (Object から継承されます。)
プロテクト メソッドMemberwiseClone(Boolean)現在の MarshalByRefObject オブジェクトの簡易コピーを作成します。 (MarshalByRefObject から継承されます。)
プロテクト メソッドObjectInvariantインフラストラクチャ。 互換性のために残されています。 Contract のサポートを提供します。 (Stream から継承されます。)
パブリック メソッドXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETRead圧縮解除されたバイト数を、指定したバイト配列に読み取ります。 (Stream.Read(Byte[], Int32, Int32) をオーバーライドします。)
パブリック メソッドサポート対象: Windows ストア アプリ用 .NETReadAsync(Byte[], Int32, Int32)現在のストリームからバイト シーケンスを非同期に読み取り、読み取ったバイト数だけストリーム内の位置を進めます。 (Stream から継承されます。)
パブリック メソッドサポート対象: Windows ストア アプリ用 .NETReadAsync(Byte[], Int32, Int32, CancellationToken)現在のストリームから非同期的にバイト シーケンスを非同期に読み取り、読み取ったバイト数だけストリーム内の位置を進め、キャンセル要求を監視します。 (Stream から継承されます。)
パブリック メソッドXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETReadByteストリームから 1 バイトを読み取り、ストリーム内の位置を 1 バイト進めます。ストリームの末尾の場合は -1 を返します。 (Stream から継承されます。)
パブリック メソッドXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETSeekこのプロパティはサポートされていないため、常に NotSupportedException をスローします。 (Stream.Seek(Int64, SeekOrigin) をオーバーライドします。)
パブリック メソッドXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETSetLengthこのプロパティはサポートされていないため、常に NotSupportedException をスローします。 (Stream.SetLength(Int64) をオーバーライドします。)
パブリック メソッドXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETToString 現在のオブジェクトを表す文字列を返します。 (Object から継承されます。)
パブリック メソッドXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETWrite圧縮されたバイトを、指定したバイト配列から基になるストリームに書き込みます。 (Stream.Write(Byte[], Int32, Int32) をオーバーライドします。)
パブリック メソッドサポート対象: Windows ストア アプリ用 .NETWriteAsync(Byte[], Int32, Int32)現在のストリームにバイト シーケンスを非同期に書き込み、書き込んだバイト数だけストリーム内の現在位置を進めます。 (Stream から継承されます。)
パブリック メソッドサポート対象: Windows ストア アプリ用 .NETWriteAsync(Byte[], Int32, Int32, CancellationToken)現在のストリームにバイト シーケンスを非同期に書き込み、書き込んだバイト数だけストリーム内の現在位置を進め、キャンセル要求を監視します。 (Stream から継承されます。)
パブリック メソッドXNA Framework によるサポート汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETWriteByteストリームの現在位置にバイトを書き込み、ストリームの位置を 1 バイトだけ進めます。 (Stream から継承されます。)
このページのトップへ
  名前説明
パブリック Extension メソッドサポート対象: Windows ストア アプリ用 .NETAsInputStreamWindows ストア アプリ用 .NET のマネージ ストリームを Windows ランタイム の入力ストリームに変換します。 (WindowsRuntimeStreamExtensions によって定義されています。)
パブリック Extension メソッドサポート対象: Windows ストア アプリ用 .NETAsOutputStreamWindows ストア アプリ用 .NET のマネージ ストリームを Windows ランタイム の出力ストリームに変換します。 (WindowsRuntimeStreamExtensions によって定義されています。)
このページのトップへ

このクラス lossless ファイルは圧縮および圧縮解除機能では、業界標準のアルゴリズムを使用する gzip のデータ形式を表します。 この形式には、データの破損を検出するための巡回冗長検査値が含まれます。 gzip データ形式は、DeflateStream クラスと同じアルゴリズムを使用しますが、拡張して他の圧縮形式を使用できます。 この形式は、特許に抵触することなく簡単に実装できます。

.NET Framework 4.5以降では、DeflateStream のクラスは圧縮に zlib ライブラリを使用します。 その結果、旧バージョンの .NET Framework で提供されるよりも優れた圧縮アルゴリズムと、ほとんどの場合、小さい圧縮ファイルを提供します。

書き込む .gz の拡張子を持つファイルへの GZipStream の圧縮されたオブジェクトは、多くの一般的な圧縮ツールを使用して配置できます。; ただし、このクラスは、ファイルをに追加したり、ZIP アーカイブからファイルを配置するには、機能はありません。

DeflateStream および GZipStream の圧縮機能は、ストリームとして公開されています。 データはバイト単位で読み取られますため、データのすべてのファイルまたはラージ ブロックを圧縮するための最適な方法を決定するために複数のパスを実行することはできません。 元データの圧縮解除には、DeflateStream クラスおよび GZipStream クラスが最もよく使用されます。 元データが既に圧縮されている場合、これらのクラスを使用すると、実際にはストリームのサイズが増大することがあります。

継承時の注意

GZipStream から継承する場合は、CanSeekCanWriteCanRead の各メンバーをオーバーライドする必要があります。

次の例は、GZipStream クラスを使用して、ファイルのディレクトリを圧縮および圧縮解除する方法を示します。


using System;
using System.IO;
using System.IO.Compression;

namespace zip
{
    public class Program
    {
        public static void Main()
        {
            string directoryPath = @"c:\users\public\reports";

            DirectoryInfo directorySelected = new DirectoryInfo(directoryPath);

            foreach (FileInfo fileToCompress in directorySelected.GetFiles())
            {
                Compress(fileToCompress);
            }

            foreach (FileInfo fileToDecompress in directorySelected.GetFiles("*.gz"))
            {
                Decompress(fileToDecompress);
            }
        }

        public static void Compress(FileInfo fileToCompress)
        {
            using (FileStream originalFileStream = fileToCompress.OpenRead())
            {
                if ((File.GetAttributes(fileToCompress.FullName) & FileAttributes.Hidden) != FileAttributes.Hidden & fileToCompress.Extension != ".gz")
                {
                    using (FileStream compressedFileStream = File.Create(fileToCompress.FullName + ".gz"))
                    {
                        using (GZipStream compressionStream = new GZipStream(compressedFileStream, CompressionMode.Compress))
                        {
                            originalFileStream.CopyTo(compressionStream);
                            Console.WriteLine("Compressed {0} from {1} to {2} bytes.",
                                fileToCompress.Name, fileToCompress.Length.ToString(), compressedFileStream.Length.ToString());
                        }
                    }
                }
            }
        }

        public static void Decompress(FileInfo fileToDecompress)
        {
            using (FileStream originalFileStream = fileToDecompress.OpenRead())
            {
                string currentFileName = fileToDecompress.FullName;
                string newFileName = currentFileName.Remove(currentFileName.Length - fileToDecompress.Extension.Length);

                using (FileStream decompressedFileStream = File.Create(newFileName))
                {
                    using (GZipStream decompressionStream = new GZipStream(originalFileStream, CompressionMode.Decompress))
                    {
                        decompressionStream.CopyTo(decompressedFileStream);
                        Console.WriteLine("Decompressed: {0}", fileToDecompress.Name);
                    }
                }
            }
        }
    }
}


.NET Framework

サポート対象 : 4.5、4、3.5、3.0、2.0

.NET Framework Client Profile

サポート対象 : 4、3.5 SP1

汎用性のあるクラス ライブラリ

サポート対象 : 汎用性のあるクラス ライブラリ

Windows ストア アプリ用 .NET

サポート対象 : Windows 8

Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (サーバー コア ロールはサポート対象外), Windows Server 2008 R2 (SP1 以降でサーバー コア ロールをサポート。Itanium はサポート対象外)

.NET Framework では、各プラットフォームのすべてのバージョンはサポートしていません。サポートされているバージョンについては、「.NET Framework システム要件」を参照してください。
この型のすべてのパブリック static (Visual Basic では Shared) メンバーは、スレッド セーフです。インスタンス メンバーの場合は、スレッド セーフであるとは限りません。
この情報は役に立ちましたか。
(残り 1500 文字)

コミュニティの追加

追加
© 2013 Microsoft. All rights reserved.