[
  {
    "Id": "222382",
    "ThreadId": "65295",
    "Html": "<p>Do you have any sample code for unzipping .gz files using gzipstream in VB.Net?</p>\r\n<p>Many thanks</p>",
    "PostedDate": "2009-08-12T01:19:09.16-07:00",
    "UserRole": null,
    "MarkedAsAnswerDate": null
  },
  {
    "Id": "222459",
    "ThreadId": "65295",
    "Html": "<p>\r\n<div style=\"color:Black;background-color:White\">\r\n<pre><span style=\"color:Blue\">Imports</span> System\r\n<span style=\"color:Blue\">Imports</span> System.IO\r\n<span style=\"color:Blue\">Imports</span> Ionic.Zlib\r\n\r\n<span style=\"color:Blue\">Namespace</span> Ionic.TestsAndTools\r\n\r\n<span style=\"color:Blue\">Public</span> <span style=\"color:Blue\">Class</span> GunZipFile\r\n\r\n    <span style=\"color:Blue\">Dim</span> WORKING_BUFFER_SIZE <span style=\"color:Blue\">As</span> <span style=\"color:Blue\">Integer</span> = 2048\r\n    <span style=\"color:Blue\">Dim</span> UncompressedFile <span style=\"color:Blue\">As</span> <span style=\"color:Blue\">String</span>\r\n    <span style=\"color:Blue\">Dim</span> CompressedFile <span style=\"color:Blue\">As</span> <span style=\"color:Blue\">String</span>\r\n\r\n    <span style=\"color:Blue\">Private</span> <span style=\"color:Blue\">Sub</span> DoGunZip()\r\n        <span style=\"color:Blue\">Dim</span> working(WORKING_BUFFER_SIZE) <span style=\"color:Blue\">as</span> <span style=\"color:Blue\">Byte</span>\r\n        <span style=\"color:Blue\">dim</span> n <span style=\"color:Blue\">As</span> <span style=\"color:Blue\">Integer</span> = 1\r\n        <span style=\"color:Blue\">Using</span> input <span style=\"color:Blue\">As</span> Stream = File.OpenRead(CompressedFile)\r\n            <span style=\"color:Blue\">Using</span> decompressor <span style=\"color:Blue\">As</span> Stream = <span style=\"color:Blue\">new</span> Ionic.Zlib.GZipStream(input, CompressionMode.Decompress, <span style=\"color:Blue\">True</span>)\r\n                <span style=\"color:Blue\">Using</span> output <span style=\"color:Blue\">As</span> Stream = File.Create(UncompressedFile)\r\n                    <span style=\"color:Blue\">Do</span>\r\n                        n= decompressor.Read(working, 0, working.Length)\r\n                        <span style=\"color:Blue\">If</span> n &gt; 0 <span style=\"color:Blue\">Then</span>\r\n                            output.Write(working, 0, n)\r\n                        <span style=\"color:Blue\">End</span> <span style=\"color:Blue\">IF</span>\r\n                    <span style=\"color:Blue\">Loop</span> <span style=\"color:Blue\">While</span> (n  &gt; 0)\r\n                <span style=\"color:Blue\">End</span> <span style=\"color:Blue\">Using</span>\r\n            <span style=\"color:Blue\">End</span> <span style=\"color:Blue\">Using</span>\r\n        <span style=\"color:Blue\">End</span> <span style=\"color:Blue\">Using</span>\r\n    <span style=\"color:Blue\">End</span> <span style=\"color:Blue\">Sub</span>\r\n ...\r\n\r\n</pre>\r\n</div>\r\n</p>",
    "PostedDate": "2009-08-12T05:08:40.48-07:00",
    "UserRole": null,
    "MarkedAsAnswerDate": null
  },
  {
    "Id": "225814",
    "ThreadId": "65295",
    "Html": "<div>\r\n<p><span lang=EN-GB>Cheeso</span></p>\r\n<p><span lang=EN-GB> </span></p>\r\n<p><span lang=EN-GB>Many thanks for the sample code, it works great with most of the files that I have, but not all. The ones it doesn&rsquo;t work with are .gz files that contain multiple compressed files. Is there some way that DotNetZip can uncompress these? as, so for, I&acute;ve been unable to find it.</span></p>\r\n<p><span lang=EN-GB> </span></p>\r\n</div>",
    "PostedDate": "2009-08-20T04:29:06.603-07:00",
    "UserRole": null,
    "MarkedAsAnswerDate": null
  },
  {
    "Id": "225907",
    "ThreadId": "65295",
    "Html": "<p>The GZipStream itself reads in a single entry in GZIP format.&nbsp;&nbsp;This limitation of the GZipStream class <a href=\"http://cheeso.members.winisp.net/DotNetZipHelp/html/42fd28ee-bc5c-866f-36fe-aa944481ef62.htm\">is documented</a>.</p>\r\n<blockquote>Though the GZIP format allows data from multiple files to be concatenated together, this stream handles only a single segment of GZIP format, typically representing a single file.</blockquote>\r\n<p>&nbsp;To read multiple entries, you'd need to read in the file as a stream, and loop over each entry with a GZipStream.&nbsp; Something like this:</p>\r\n<div style=\"color:Black;background-color:White\">\r\n<pre><span style=\"color:Blue\">Private</span> <span style=\"color:Blue\">Sub</span> DoGunZip()\r\n    <span style=\"color:Blue\">Dim</span> working(WORKING_BUFFER_SIZE) <span style=\"color:Blue\">as</span> <span style=\"color:Blue\">Byte</span>\r\n    <span style=\"color:Blue\">dim</span> n <span style=\"color:Blue\">As</span> <span style=\"color:Blue\">Integer</span> = 1\r\n    <span style=\"color:Blue\">Using</span> input <span style=\"color:Blue\">As</span> Stream = File.OpenRead(CompressedFile)\r\n        <span style=\"color:Blue\">Do</span> <span style=\"color:Blue\">While</span> (input.Length &gt; input.Position)\r\n            <span style=\"color:Blue\">Using</span> decompressor <span style=\"color:Blue\">As</span> Stream = <span style=\"color:Blue\">new</span> Ionic.Zlib.GZipStream(input, CompressionMode.Decompress, <span style=\"color:Blue\">True</span>)\r\n                <span style=\"color:Blue\">Using</span> output <span style=\"color:Blue\">As</span> Stream = File.Create(UncompressedFile)\r\n                    <span style=\"color:Blue\">Do</span>\r\n                        n= decompressor.Read(working, 0, working.Length)\r\n                        <span style=\"color:Blue\">If</span> n &gt; 0 <span style=\"color:Blue\">Then</span>\r\n                            output.Write(working, 0, n)\r\n                        <span style=\"color:Blue\">End</span> <span style=\"color:Blue\">IF</span>\r\n                    <span style=\"color:Blue\">Loop</span> <span style=\"color:Blue\">While</span> (n  &gt; 0)\r\n                <span style=\"color:Blue\">End</span> <span style=\"color:Blue\">Using</span>\r\n            <span style=\"color:Blue\">End</span> <span style=\"color:Blue\">Using</span>\r\n        <span style=\"color:Blue\">Loop</span>\r\n    <span style=\"color:Blue\">End</span> <span style=\"color:Blue\">Using</span>\r\n<span style=\"color:Blue\">End</span> <span style=\"color:Blue\">Sub</span>\r\n\r\n</pre>\r\n</div>\r\n<p>I don't know if this will work, because I don't have a GZ file structured in this way, and I don't know a good way to produce one to do a test.&nbsp; But it seems like it should work. If you can send me a sample .gz file with multiple entries, I'd be glad to test it.</p>\r\n<p>&nbsp;</p>\r\n<p>&nbsp;</p>",
    "PostedDate": "2009-08-20T08:17:23.133-07:00",
    "UserRole": null,
    "MarkedAsAnswerDate": null
  },
  {
    "Id": "226201",
    "ThreadId": "65295",
    "Html": "\r\n\r\n<div class=Section1>\r\n\r\n<p class=MsoNormal><span lang=EN-GB>Cheeso</span></p>\r\n\r\n<p class=MsoNormal><span lang=EN-GB> </span></p>\r\n\r\n<p class=MsoNormal><span lang=EN-GB>Once again, thanks for your reply. After\r\nplaying around with various methods I have discovered that the .gz file I have\r\ncontaining multiple entries can actually be decompressed successfully when I\r\ntreat it as a .zip file. Strangely I have other files from the same source that\r\nhave the .gz extension but need to be decompressed using the GZipStream. </span></p>\r\n\r\n<p class=MsoNormal><span lang=EN-GB> </span></p>\r\n\r\n<p class=MsoNormal><span lang=EN-GB>Out of interest I tried the code sample you\r\nsent but couldn’t get it to work, although maybe the above explains that.\r\n</span></p>\r\n\r\n<p class=MsoNormal><span lang=EN-GB> </span></p>\r\n\r\n<p class=MsoNormal><span lang=EN-GB>Unfortunately I cannot send you a sample\r\nGZip file containing multiple files as the only ones I have are a) excessively large\r\nand b) subject to Data Protection laws.</span></p>\r\n\r\n<p class=MsoNormal><span lang=EN-GB> </span></p>\r\n\r\n<p class=MsoNormal><span lang=EN-GB style=\"font-size:10.0pt;font-family:'Arial','sans-serif'\"> </span></p>\r\n\r\n<p class=MsoNormal align=center style=\"text-align:center\"><span lang=EN-GB> </span></p>\r\n\r\n</div>\r\n\r\n",
    "PostedDate": "2009-08-21T01:26:36.32-07:00",
    "UserRole": null,
    "MarkedAsAnswerDate": null
  },
  {
    "Id": "226204",
    "ThreadId": "65295",
    "Html": "<p>Glad you got it solved. Just FYI, GZIP is not ZIP, they are not interchangeable or compatible.&nbsp; Sounds like a mis-named file, to me.</p>",
    "PostedDate": "2009-08-21T01:40:04.767-07:00",
    "UserRole": null,
    "MarkedAsAnswerDate": null
  },
  {
    "Id": "226206",
    "ThreadId": "65295",
    "Html": "\r\n\r\n<div class=Section1>\r\n\r\n<p class=MsoNormal><span lang=EN-GB>It looks like that to me too but I can’t\r\nask the people who created it. Unfortunately I spent the best part of yesterday\r\ntreating it as a .GZip file </span><span lang=EN-GB style=\"font-family:Wingdings\">L</span><span lang=EN-GB style=\"font-size:10.0pt;font-family:'Arial','sans-serif'\"></span></p>\r\n\r\n<p class=MsoNormal><span lang=EN-GB> </span></p>\r\n\r\n</div>\r\n\r\n",
    "PostedDate": "2009-08-21T01:42:16.3-07:00",
    "UserRole": null,
    "MarkedAsAnswerDate": null
  }
]