[
  {
    "Id": "698282",
    "ThreadId": "279482",
    "Html": "\r\n<p>I have files uploaded to sharepoint document library. Trying to use DotNetZip to get those files from document library, zip them and render the zip file. (Files in the document library are in PDF format).</p>\r\n<p>&nbsp;&nbsp;&nbsp; Response.Clear();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>\r\n&nbsp;&nbsp;&nbsp; Response.ContentType = &quot;application/zip&quot;;<br>\r\n&nbsp;&nbsp;&nbsp; Response.AddHeader(&quot;content-disposition&quot;, &quot;filename=&quot; &#43; &quot;MyFiles.zip&quot;);</p>\r\n<p>&nbsp;&nbsp;&nbsp; using (ZipFile zip = new ZipFile())</p>\r\n<p>&nbsp;&nbsp;&nbsp; {<br>\r\n&nbsp;&nbsp;&nbsp; //Query the sharepoint document library and get SPFolder (folder in this case)</p>\r\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; foreach (SPFolder folder in userFolder.SubFolders)<br>\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; foreach (SPFile file in\r\n folder.Files)<br>\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r\n byte[] br = file.OpenBinary();</p>\r\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r\n using (MemoryStream stream = new MemoryStream())<br>\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r\n {<br>\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r\n stream.Write(br, 0, br.Length);<br>\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r\n zip.AddEntry(file.Name, stream);<br>\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r\n }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r\n<br>\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r\n<br>\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; zip.Save(Response.OutputStream);</p>\r\n<p>After downloading the zip file I am not able to open the zip file. It shows &quot;zip file is invalid&quot;.</p>\r\n<p>Any thoughts?</p>\r\n",
    "PostedDate": "2011-11-15T01:27:39.493-08:00",
    "UserRole": null,
    "MarkedAsAnswerDate": null
  },
  {
    "Id": "698301",
    "ThreadId": "279482",
    "Html": "<p>I got it figured it out from this <a href=\"http://dotnetzip.codeplex.com/discussions/259231\">http://dotnetzip.codeplex.com/discussions/259231</a></p>\r\n<p>Thanks</p>",
    "PostedDate": "2011-11-15T02:29:07.24-08:00",
    "UserRole": null,
    "MarkedAsAnswerDate": null
  },
  {
    "Id": "914239",
    "ThreadId": "279482",
    "Html": "<p>@naveengopisetty - would you mind posting your final code to accomplish this? I have reviewed the link provided but can not seem to accomplish this. I appreciate any assistance you might be able to provide.</p>",
    "PostedDate": "2012-09-18T10:33:51.3-07:00",
    "UserRole": null,
    "MarkedAsAnswerDate": null
  },
  {
    "Id": "914273",
    "ThreadId": "279482",
    "Html": "<p>@jonesej I am trying to find the code for you. Been long time. &nbsp;Mean while I find the code see if this link helps&nbsp;<a href=\"http://stackoverflow.com/questions/838397/stream-zip-file-mvc-net-start-streaming\">http://stackoverflow.com/questions/838397/stream-zip-file-mvc-net-start-streaming</a></p>\r\n<p>What is the error you are getting?&nbsp;</p>",
    "PostedDate": "2012-09-18T11:59:54.49-07:00",
    "UserRole": null,
    "MarkedAsAnswerDate": null
  },
  {
    "Id": "914282",
    "ThreadId": "279482",
    "Html": "<p>@jonesej - I found the code.</p>\r\n<p>\r\n<pre>                    using (SPSite site = new SPSite(\"URL\"))\r\n                    {\r\n                        using (SPWeb web = site.OpenWeb())\r\n                        {\r\n       \r\n                            Response.Clear();\r\n                            Response.ContentType = \"application/zip\";\r\n                            Response.AddHeader(\"content-disposition\", \"attachment; filename=My.zip\");\r\n\r\n                            SPList docList = web.Lists[\"Docs\"];\r\n                            if (docList.RootFolder.SubFolders[folderName].Exists)\r\n                            {\r\n                                SPFolder userFolder = docList.RootFolder.SubFolders[\"foldername\"];\r\n\r\n                                using (ZipOutputStream zipOStream = new ZipOutputStream(Response.OutputStream))\r\n                                {                                \r\n\r\n                                    foreach (SPFolder folder in userFolder.SubFolders)\r\n                                    {\r\n                                        foreach (SPFile file in folder.Files)\r\n                                        {\r\n                                            byte[] br = file.OpenBinary();\r\n                                            zipOStream.PutNextEntry(folder.Name + \"\\\\\" + file.Name);\r\n                                            zipOStream.Write(br, 0, br.Length);\r\n                                        }\r\n                                    }\r\n                                    zipOStream.Flush();\r\n                                }\r\n                               \r\n\r\n                                Response.OutputStream.Flush();\r\n                            }\r\n                        }\r\n                    }\r\n</pre>\r\n</p>",
    "PostedDate": "2012-09-18T12:29:17.307-07:00",
    "UserRole": null,
    "MarkedAsAnswerDate": null
  }
]