GZipStream Constructor (Stream, CompressionMode)
Initializes a new instance of the GZipStream class by using the specified stream and compression mode.
Assembly: System (in System.dll)
Parameters
- stream
-
Type:
System.IO.Stream
The stream the compressed or decompressed data is written to.
- mode
-
Type:
System.IO.Compression.CompressionMode
One of the enumeration values that indicates whether to compress or decompress the stream.
| Exception | Condition |
|---|---|
| ArgumentNullException | stream is null. |
| ArgumentException | mode is not a valid CompressionMode enumeration value. -or- CompressionMode is Compress and CanWrite is false. -or- CompressionMode is Decompress and CanRead is false. |
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.
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.
By default, the compression level is set to Optimal when the compression mode is Compress.
The following example initializes a new instance of the GZipStream class with mode set to Compress. This example is part of a larger example provided for the GZipStream class.
Imports System.IO Imports System.IO.Compression Module Module1 Private directoryPath As String = "c:\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 & "\" & fileToCompress.Name & ".gz") Console.WriteLine("Compressed {0} from {1} to {2} bytes.", fileToCompress.Name, fileToCompress.Length.ToString(), info.Length.ToString()) 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: {0}", fileToDecompress.Name) End Using End Using End Using End Sub End Module
Available since 8
.NET Framework
Available since 2.0
Portable Class Library
Supported in: portable .NET platforms
Windows Phone
Available since 8.1