[
  {
    "Id": "1349509",
    "ThreadId": "579596",
    "Html": "I'm working on application that is randomly required to retrieve a small file from a set (20ish) large (500MB) ZiP files each of which may contain 250,000 or more entries.\r<br />\n<br />\nI have my Ionic zip working and it is a very simple program.  The problem is the program grinds to halt for over a minute at the line\r<br />\n<br />\nUsing zip1 As ZipFile = ZipFile.Read(ZipToUnpack)\r<br />\n<br />\nAs a user is waiting for the returned file this is just too long and I need to get it down to &lt;10seconds<br />\n\r<br />\nI had considered opening all of the archives and keeping them open but I have a feeling that this is going to be a very bad thing to do especially as the number of archive zips I have to access will grow with time.\r<br />\n<br />\nAs the overall number of files in the zips is in millions I thought it a neat solutions not to unpack them especially as the request for files will be few and random.  However, I need to be able to get one file out in an acceptable amount of time.\r<br />\n<br />\nI rather assume the line of code above is loading the entire 250,000 entry directory. \r<br />\n<br />\nDo you have any thoughts of suggestions on this?\r<br />\n<br />\nThanks<br />\n",
    "PostedDate": "2015-02-05T13:48:00.293-08:00",
    "UserRole": null,
    "MarkedAsAnswerDate": null
  },
  {
    "Id": "1351758",
    "ThreadId": "579596",
    "Html": "For the benefit of others I have overcome this problem.  Perhaps not in the way I hoped.\r<br />\nI have the sadly found the best answer for me was not to use ionic zip....\r<br />\n<br />\nSystem.IO.Compression extracted the file in &lt;10seconds\r<br />\n<br />\nI suspect the .net native solution came along after ionic but there you go ... that's software (-:<br />\n<pre><code>\n Using archive As System.IO.Compression.ZipArchive = System.IO.Compression.ZipFile.OpenRead(ZipToUnpack)\n\n                            Dim entry As ZipArchiveEntry = archive.GetEntry(&quot;FileName.txt&quot;)\n                            entry.ExtractToFile(System.IO.Path.Combine(TargetDir, &quot;FileName.txt&quot;))\n\n  End Using\n</code></pre>\n\n",
    "PostedDate": "2015-02-12T05:37:14.207-08:00",
    "UserRole": null,
    "MarkedAsAnswerDate": null
  }
]