title: Is there a problem with IO.Compression?
body: <p>I've just started compressing file in VB.Net, using the following code. Since I'm targeting Fx 2.0, I can't use the <code>Stream.CopyTo</code> method.</p>
  
  <p>My code, however, gives extremely poor results compared to the gzip <code>Normal</code> compression profile in 7-zip. For example, my code compressed a 630MB outlook archive to 740MB, and 7-zip makes it 490MB.</p>
  
  <p>Here is the code. Is there a blatant mistake (or many?)</p>
  
  <pre><code>Using Input As New IO.FileStream(SourceFile, IO.FileMode.Open, IO.FileAccess.Read, IO.FileShare.Read)
      Using outFile As IO.FileStream = IO.File.Create(DestFile)
          Using Compress As IO.Compression.GZipStream = New IO.Compression.GZipStream(outFile, IO.Compression.CompressionMode.Compress)
              'TODO: Figure out the right buffer size.'
              Dim Buffer(524228) As Byte
              Dim ReadBytes As Integer = 0
  
              While True
                  ReadBytes = Input.Read(Buffer, 0, Buffer.Length)
                  If ReadBytes &lt;= 0 Then Exit While
                  Compress.Write(Buffer, 0, ReadBytes)
              End While
          End Using
      End Using
  End Using
  </code></pre>
  
  <p>I've tried with multiple buffer sizes, but I get similar compression times, and exactly the same compression ratio.</p>