GZipStream コンストラクター

定義

GZipStream クラスの新しいインスタンスを初期化します。Initializes a new instance of the GZipStream class.

オーバーロード

GZipStream(Stream, CompressionLevel)

指定したストリームと圧縮レベルを使用して、GZipStream クラスの新しいインスタンスを初期化します。Initializes a new instance of the GZipStream class by using the specified stream and compression level.

GZipStream(Stream, CompressionMode)

指定したストリームと圧縮モードを使用して、GZipStream クラスの新しいインスタンスを初期化します。Initializes a new instance of the GZipStream class by using the specified stream and compression mode.

GZipStream(Stream, CompressionLevel, Boolean)

指定したストリームと圧縮レベルを使用して GZipStream クラスの新しいインスタンスを初期化し、必要に応じて、ストリームを開いたままにします。Initializes a new instance of the GZipStream class by using the specified stream and compression level, and optionally leaves the stream open.

GZipStream(Stream, CompressionMode, Boolean)

指定したストリームと圧縮モードを使用して GZipStream クラスの新しいインスタンスを初期化し、必要に応じて、ストリームを開いたままにします。Initializes a new instance of the GZipStream class by using the specified stream and compression mode, and optionally leaves the stream open.

GZipStream(Stream, CompressionLevel)

指定したストリームと圧縮レベルを使用して、GZipStream クラスの新しいインスタンスを初期化します。Initializes a new instance of the GZipStream class by using the specified stream and compression level.

public:
 GZipStream(System::IO::Stream ^ stream, System::IO::Compression::CompressionLevel compressionLevel);
public GZipStream (System.IO.Stream stream, System.IO.Compression.CompressionLevel compressionLevel);
new System.IO.Compression.GZipStream : System.IO.Stream * System.IO.Compression.CompressionLevel -> System.IO.Compression.GZipStream
Public Sub New (stream As Stream, compressionLevel As CompressionLevel)

パラメーター

stream
Stream

圧縮するストリーム。The stream to compress.

compressionLevel
CompressionLevel

ストリームの圧縮時に速度または圧縮の効率性を強調するかどうかを示す列挙値の 1 つ。One of the enumeration values that indicates whether to emphasize speed or compression efficiency when compressing the stream.

例外

streamnullです。stream is null.

ストリームは圧縮などの書き込み操作をサポートしません The stream does not support write operations such as compression. (ストリーム オブジェクトの CanWrite プロパティは false です)。(The CanWrite property on the stream object is false.)

次の例は、オブジェクトの作成時に圧縮レベルを設定する方法を示して GZipStream います。The following example shows how to set the compression level when creating a GZipStream object.

using System;
using System.Collections.Generic;
using System.IO;
using System.IO.Compression;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string directoryPath = @"c:\users\public\reports";
            DirectoryInfo directorySelected = new DirectoryInfo(directoryPath);

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

        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, CompressionLevel.Fastest))
                        {
                            originalFileStream.CopyTo(compressionStream);
                        }
                    }
                }
            }
        }
    }
}
Imports System.IO
Imports System.IO.Compression

Module Module1

    Sub Main()
        Dim directoryPath As String = "c:\users\public\reports"
        Dim directorySelected As DirectoryInfo = New DirectoryInfo(directoryPath)

        For Each fileToCompress As FileInfo In directorySelected.EnumerateFiles()
            Compress(fileToCompress)
        Next
    End Sub

    Public Sub Compress(fileToCompress As FileInfo)
        Using originalFileStream As FileStream = fileToCompress.OpenRead()
            If ((File.GetAttributes(fileToCompress.FullName) & FileAttributes.Hidden) <> FileAttributes.Hidden And fileToCompress.Extension <> ".gz") Then
                Using compressedFileStream As FileStream = File.Create(fileToCompress.FullName + ".gz")
                    Using compressionStream As GZipStream = New GZipStream(compressedFileStream, CompressionLevel.Fastest)
                        originalFileStream.CopyTo(compressionStream)
                    End Using
                End Using
            End If
        End Using
    End Sub

End Module

注釈

このコンストラクターは、クラスのインスタンスに対して圧縮の効率や速度を重視するかどうかを指定する場合に使用し GZipStream ます。You use this constructor when you want to specify whether compression efficiency or speed is more important for an instance of the GZipStream class.

このコンストラクターのオーバーロードは、圧縮モードを使用 Compress します。This constructor overload uses the compression mode Compress. 圧縮モードを別の値に設定するには、またはのオーバーロードを使用し GZipStream(Stream, CompressionMode) GZipStream(Stream, CompressionMode, Boolean) ます。To set the compression mode to another value, use the GZipStream(Stream, CompressionMode) or GZipStream(Stream, CompressionMode, Boolean) overload.

適用対象

GZipStream(Stream, CompressionMode)

指定したストリームと圧縮モードを使用して、GZipStream クラスの新しいインスタンスを初期化します。Initializes a new instance of the GZipStream class by using the specified stream and compression mode.

public:
 GZipStream(System::IO::Stream ^ stream, System::IO::Compression::CompressionMode mode);
public GZipStream (System.IO.Stream stream, System.IO.Compression.CompressionMode mode);
new System.IO.Compression.GZipStream : System.IO.Stream * System.IO.Compression.CompressionMode -> System.IO.Compression.GZipStream
Public Sub New (stream As Stream, mode As CompressionMode)

パラメーター

stream
Stream

圧縮されたデータまたは圧縮解除されたデータが書き込まれるストリーム。The stream the compressed or decompressed data is written to.

mode
CompressionMode

ストリームを圧縮するか圧縮解除するかを示す列挙値の 1 つ。One of the enumeration values that indicates whether to compress or decompress the stream.

例外

streamnullです。stream is null.

mode が有効な CompressionMode 列挙値ではありません。mode is not a valid CompressionMode enumeration value.

- または --or- CompressionModeCompress で、CanWritefalse です。CompressionMode is Compress and CanWrite is false.

- または --or- CompressionModeDecompress で、CanReadfalse です。CompressionMode is Decompress and CanRead is false.

次の例では、 GZipStream をに設定して、クラスの新しいインスタンスを初期化し mode Compress ます。The following example initializes a new instance of the GZipStream class with mode set to Compress. この例は、クラスに対して提供される大規模な例の一部です GZipStreamThis example is part of a larger example provided for the GZipStream class.

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

public class Program
{
    private static string directoryPath = @".\temp";
    public static void Main()
    {
        DirectoryInfo directorySelected = new DirectoryInfo(directoryPath);
        Compress(directorySelected);

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

    public static void Compress(DirectoryInfo directorySelected)
    {
        foreach (FileInfo fileToCompress in directorySelected.GetFiles())
        {
            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);
                        }
                    }
                    FileInfo info = new FileInfo(directoryPath + Path.DirectorySeparatorChar + fileToCompress.Name + ".gz");
                    Console.WriteLine($"Compressed {fileToCompress.Name} from {fileToCompress.Length.ToString()} to {info.Length.ToString()} bytes.");
                }
            }
        }
    }

    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: {fileToDecompress.Name}");
                }
            }
        }
    }
}
Imports System.IO
Imports System.IO.Compression

Module Module1

    Private directoryPath As String = ".\temp"
    Public Sub Main()
        Dim directorySelected As New DirectoryInfo(directoryPath)
        Compress(directorySelected)

        For Each fileToDecompress As FileInfo In directorySelected.GetFiles("*.gz")
            Decompress(fileToDecompress)
        Next
    End Sub

    Public Sub Compress(directorySelected As DirectoryInfo)
        For Each fileToCompress As FileInfo In directorySelected.GetFiles()
            Using originalFileStream As FileStream = fileToCompress.OpenRead()
                If (File.GetAttributes(fileToCompress.FullName) And FileAttributes.Hidden) <> FileAttributes.Hidden And fileToCompress.Extension <> ".gz" Then
                    Using compressedFileStream As FileStream = File.Create(fileToCompress.FullName & ".gz")
                        Using compressionStream As New GZipStream(compressedFileStream, CompressionMode.Compress)

                            originalFileStream.CopyTo(compressionStream)
                        End Using
                    End Using
                    Dim info As New FileInfo(directoryPath & Path.DirectorySeparatorChar & fileToCompress.Name & ".gz")
                    Console.WriteLine($"Compressed {fileToCompress.Name} from {fileToCompress.Length.ToString()} to {info.Length.ToString()} bytes.")

                End If
            End Using
        Next
    End Sub


    Private Sub Decompress(ByVal fileToDecompress As FileInfo)
        Using originalFileStream As FileStream = fileToDecompress.OpenRead()
            Dim currentFileName As String = fileToDecompress.FullName
            Dim newFileName = currentFileName.Remove(currentFileName.Length - fileToDecompress.Extension.Length)

            Using decompressedFileStream As FileStream = File.Create(newFileName)
                Using decompressionStream As GZipStream = New GZipStream(originalFileStream, CompressionMode.Decompress)
                    decompressionStream.CopyTo(decompressedFileStream)
                    Console.WriteLine($"Decompressed: {fileToDecompress.Name}")
                End Using
            End Using
        End Using
    End Sub
End Module

注釈

既定では、は GZipStream 基になるストリームを所有します。そのため、パラメーターを閉じると、 stream 基になるストリームも閉じられます。By default, GZipStream owns the underlying stream, so closing the stream parameter also closes the underlying stream. 基になるストリームの状態は、ストリームの使いやすさに影響する可能性があることに注意してください。Note that the state of the underlying stream can affect the usability of the stream. また、明示的なチェックは行われないため、新しいインスタンスが作成されても、追加の例外はスローされません。Also, no explicit checks are performed, so no additional exceptions are thrown when the new instance is created.

パラメーターがと等しいクラスのインスタンスが作成され、 GZipStream mode Compress それ以上の操作が行われない場合、ストリームは有効な空の圧縮ファイルとして表示されます。If an instance of the GZipStream class is created with the mode parameter equal to Compress and no further action occurs, the stream will appear as a valid, empty compressed file.

既定では、圧縮モードがの場合、圧縮レベルはに設定され Optimal Compress ます。By default, the compression level is set to Optimal when the compression mode is Compress.

適用対象

GZipStream(Stream, CompressionLevel, Boolean)

指定したストリームと圧縮レベルを使用して GZipStream クラスの新しいインスタンスを初期化し、必要に応じて、ストリームを開いたままにします。Initializes a new instance of the GZipStream class by using the specified stream and compression level, and optionally leaves the stream open.

public:
 GZipStream(System::IO::Stream ^ stream, System::IO::Compression::CompressionLevel compressionLevel, bool leaveOpen);
public GZipStream (System.IO.Stream stream, System.IO.Compression.CompressionLevel compressionLevel, bool leaveOpen);
new System.IO.Compression.GZipStream : System.IO.Stream * System.IO.Compression.CompressionLevel * bool -> System.IO.Compression.GZipStream
Public Sub New (stream As Stream, compressionLevel As CompressionLevel, leaveOpen As Boolean)

パラメーター

stream
Stream

圧縮されたデータを書き込むストリーム。The stream to write the compressed data to.

compressionLevel
CompressionLevel

ストリームの圧縮時に速度または圧縮の効率性を強調するかどうかを示す列挙値の 1 つ。One of the enumeration values that indicates whether to emphasize speed or compression efficiency when compressing the stream.

leaveOpen
Boolean

GZipStream オブジェクトを破棄した後にストリーム オブジェクトを開いたままにする場合は true、それ以外の場合は falsetrue to leave the stream object open after disposing the GZipStream object; otherwise, false.

例外

streamnullです。stream is null.

ストリームは圧縮などの書き込み操作をサポートしません The stream does not support write operations such as compression. (ストリーム オブジェクトの CanWrite プロパティは false です)。(The CanWrite property on the stream object is false.)

次の例は、オブジェクトの作成時に圧縮レベルを設定する方法と、ストリームを開いたままにする方法を示して GZipStream います。The following example shows how to set the compression level when creating a GZipStream object and how to leave the stream open.

using System;
using System.Collections.Generic;
using System.IO;
using System.IO.Compression;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string directoryPath = @"c:\users\public\reports";
            DirectoryInfo directorySelected = new DirectoryInfo(directoryPath);

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

        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, CompressionLevel.Fastest, true))
                        {
                            originalFileStream.CopyTo(compressionStream);
                        }
                        Console.WriteLine(string.Format("file compressed to {0} bytes", compressedFileStream.Length));
                    }
                }
            }
        }
    }
}
Imports System.IO
Imports System.IO.Compression

Module Module1

    Sub Main()
        Dim directoryPath As String = "c:\users\public\reports"
        Dim directorySelected As DirectoryInfo = New DirectoryInfo(directoryPath)

        For Each fileToCompress As FileInfo In directorySelected.EnumerateFiles()
            Compress(fileToCompress)
        Next
    End Sub

    Public Sub Compress(fileToCompress As FileInfo)
        Using originalFileStream As FileStream = fileToCompress.OpenRead()
            If ((File.GetAttributes(fileToCompress.FullName) & FileAttributes.Hidden) <> FileAttributes.Hidden And fileToCompress.Extension <> ".gz") Then
                Using compressedFileStream As FileStream = File.Create(fileToCompress.FullName + ".gz")
                    Using compressionStream As GZipStream = New GZipStream(compressedFileStream, CompressionLevel.Fastest, True)
                        originalFileStream.CopyTo(compressionStream)
                    End Using
                    Console.WriteLine(String.Format("file compressed to {0} bytes", compressedFileStream.Length))
                End Using
            End If
        End Using
    End Sub

End Module

注釈

このコンストラクターは、クラスのインスタンスに対して圧縮の効率や速度を重視するかどうか、 GZipStream およびオブジェクトを破棄した後にストリームオブジェクトを開いたままにするかどうかを指定する場合に使用し GZipStream ます。You use this constructor when you want to specify whether compression efficiency or speed is more important for an instance of the GZipStream class, and whether to leave the stream object open after disposing the GZipStream object.

このコンストラクターのオーバーロードは、圧縮モードを使用 Compress します。This constructor overload uses the compression mode Compress. 圧縮モードを別の値に設定するには、またはのオーバーロードを使用し GZipStream(Stream, CompressionMode) GZipStream(Stream, CompressionMode, Boolean) ます。To set the compression mode to another value, use the GZipStream(Stream, CompressionMode) or GZipStream(Stream, CompressionMode, Boolean) overload.

適用対象

GZipStream(Stream, CompressionMode, Boolean)

指定したストリームと圧縮モードを使用して GZipStream クラスの新しいインスタンスを初期化し、必要に応じて、ストリームを開いたままにします。Initializes a new instance of the GZipStream class by using the specified stream and compression mode, and optionally leaves the stream open.

public:
 GZipStream(System::IO::Stream ^ stream, System::IO::Compression::CompressionMode mode, bool leaveOpen);
public GZipStream (System.IO.Stream stream, System.IO.Compression.CompressionMode mode, bool leaveOpen);
new System.IO.Compression.GZipStream : System.IO.Stream * System.IO.Compression.CompressionMode * bool -> System.IO.Compression.GZipStream
Public Sub New (stream As Stream, mode As CompressionMode, leaveOpen As Boolean)

パラメーター

stream
Stream

圧縮するストリーム。The stream to compress.

mode
CompressionMode

ストリームを圧縮するか圧縮解除するかを示す列挙値の 1 つ。One of the enumeration values that indicates whether to compress or decompress the stream.

leaveOpen
Boolean

GZipStream オブジェクトを破棄した後にストリームを開いたままにする場合は true、それ以外の場合は falsetrue to leave the stream open after disposing the GZipStream object; otherwise, false.

例外

streamnullです。stream is null.

mode は有効な CompressionMode 値ではありません。mode is not a valid CompressionMode value.

- または --or- CompressionModeCompress で、CanWritefalse です。CompressionMode is Compress and CanWrite is false.

- または --or- CompressionModeDecompress で、CanReadfalse です。CompressionMode is Decompress and CanRead is false.

注釈

既定では、は GZipStream 基になるストリームを所有します。そのため、パラメーターを閉じると、 stream 基になるストリームも閉じられます。By default, GZipStream owns the underlying stream, so closing the stream parameter also closes the underlying stream. 基になるストリームの状態は、ストリームの使いやすさに影響する可能性があることに注意してください。Note that the state of the underlying stream can affect the usability of the stream. また、明示的なチェックは行われないため、新しいインスタンスが作成されても、追加の例外はスローされません。Also, no explicit checks are performed, so no additional exceptions are thrown when the new instance is created.

パラメーターがと等しいクラスのインスタンスが作成され、 GZipStream mode Compress それ以上の操作が行われない場合、ストリームは有効な空の圧縮ファイルとして表示されます。If an instance of the GZipStream class is created with the mode parameter equal to Compress and no further action occurs, the stream will appear as a valid, empty compressed file.

既定では、圧縮モードがの場合、圧縮レベルはに設定され Optimal Compress ます。By default, the compression level is set to Optimal when the compression mode is Compress.

適用対象