[
  {
    "Id": "457312",
    "ThreadId": "216538",
    "Html": "<p>Hi. I have a self-extract file that was not generated by WinZip and I want to read its structure without having to extract the files. When I try to read the self-extract, I receive a BadReadException with the following message: &quot;ZipEntry::ReadDirEntry(): Bad signature (0x48918D99) at position 0x01762215&quot;.</p>\r\n<p>Is there a way to do what I want?</p>\r\n<p>Thanks</p>",
    "PostedDate": "2010-06-18T09:15:29.93-07:00",
    "UserRole": null,
    "MarkedAsAnswerDate": null
  },
  {
    "Id": "457339",
    "ThreadId": "216538",
    "Html": "<p>It's possible the self-extracting archive is not actually a valid zip file. That seems to be what DotNetZip is telling you.</p>\r\n<p>you say the archive was&nbsp;&quot;not generated by WinZip&quot;.&nbsp;&nbsp;&nbsp; What was it generated by?</p>\r\n<p>Can you read the generated archive in WinZip?&nbsp;&nbsp;</p>\r\n<p>Some &quot;self extracting archives&quot; are not zip files.&nbsp; The ones generated by winzip are zip files.</p>\r\n<p>In some cases the self-extracting archive is a file that contains a valid zip file; for example&nbsp;a file that consists of a stub exe,&nbsp;along with the contents of a valid zip file appended to it.&nbsp; &nbsp;In that case you may need to&nbsp;(1) open a stream on the file, (2) seek to the beginning of the actual zip&nbsp;content in the file, and finally (3) pass the stream to ZipFile.Read(), in order to read it as a zip file with DotNetZip. I believe that should work. But you will&nbsp;need to know exactly where the zip content starts.</p>\r\n<p>&nbsp;</p>\r\n<p>&nbsp;</p>\r\n<p>&nbsp;</p>",
    "PostedDate": "2010-06-18T10:00:26.517-07:00",
    "UserRole": null,
    "MarkedAsAnswerDate": null
  },
  {
    "Id": "457345",
    "ThreadId": "216538",
    "Html": "<p>Hi Cheeso. Thanks for your answer.</p>\r\n<p>The self extract file is, as you said, a stub exe along with the contents. I can view the contents in WinRAR (it ignores the exe and reads only the contents). When I use other zip libraries, such as SharpZipLib, it reads only the contents and ignores the stub exe, without needing to know the point where the zip starts.</p>\r\n<p>The only way to do the same using DotNetZip is doing what you said?</p>",
    "PostedDate": "2010-06-18T10:15:24.007-07:00",
    "UserRole": null,
    "MarkedAsAnswerDate": null
  },
  {
    "Id": "457351",
    "ThreadId": "216538",
    "Html": "<p>yup!&nbsp;</p>\r\n<p>Seems like SharpZiplib is guessing&nbsp;at where the zip content starts - which is effectively the reference point for every offset value in the zip file.&nbsp; I guess DotNetZip could do that, but I've never had a request for it.&nbsp; Not sure if I could make the logic intelligent enough to handle both &quot;winzip-style&quot; self-extracting archives and &quot;stub exe&nbsp;+ ZIP&quot;, which is what you have, and intelligently select between them.&nbsp; I'd have to think about that.&nbsp;</p>\r\n<p>&nbsp;</p>",
    "PostedDate": "2010-06-18T10:35:54.673-07:00",
    "UserRole": null,
    "MarkedAsAnswerDate": null
  },
  {
    "Id": "669924",
    "ThreadId": "216538",
    "Html": "<p>Hi Cheeso,</p>\r\n<p>&nbsp; &nbsp; &nbsp;Have you had a chance to think about making DotNetZip able to extract contents from these stub EXE + contents files? &nbsp;I have a situation where my program uses DotNetZip to extract updates to a program. &nbsp;Some updates are .zip and some are .exe. &nbsp;I just run the .exe to actually install the updates, but I want to use DotNetZip to extract the files prior to installation to read the new file version numbers so that a user can choose whether or not to install the update.</p>\r\n<p>&nbsp; &nbsp; &nbsp;For reference, here is an example file that I can open with 7-Zip and see the contents, but which is an EXE: <a href=\"http://www.fiddler2.com/dl/FiddlerJSFormatSetup.exe\" target=\"_blank\">http://www.fiddler2.com/dl/FiddlerJSFormatSetup.exe</a>&nbsp;. &nbsp;These are the types of files I would love for DotNetZip to be able to handle. &nbsp;I'm not concerned about</p>\r\n<p>Thanks,<br />~Chad&nbsp;</p>",
    "PostedDate": "2011-09-09T15:28:12.593-07:00",
    "UserRole": null,
    "MarkedAsAnswerDate": null
  },
  {
    "Id": "670294",
    "ThreadId": "216538",
    "Html": "<p>This is a new question.</p>\r\n<p>Please open a new thread - don't recycle a thread from 15 months ago.</p>",
    "PostedDate": "2011-09-11T09:32:59.087-07:00",
    "UserRole": null,
    "MarkedAsAnswerDate": null
  }
]