[
  {
    "Id": "656984",
    "ThreadId": "268802",
    "Html": "\r\n<p>Excuse me , if I want to compress stream to stream which is .zip format?</p>\r\n<p>One thing I know is <span>GZipStream Class is .gz format.&nbsp;&nbsp;I just want\r\n<span style=\"text-decoration:underline\">.zip format replace .gz format</span>.Others like conclusion of\r\n<a href=\"http://dotnetzip.codeplex.com/discussions/268506\">http://dotnetzip.codeplex.com/discussions/268506</a>&nbsp;&nbsp;&nbsp;.</span></p>\r\n<p>public byte[] Zip(string ToCompress) <br>\r\n{<br>\r\n&nbsp;using (Stream input = StringToMemoryStream(ToCompress))<br>\r\n&nbsp;{<br>\r\n&nbsp;&nbsp;MemoryStream raw = new MemoryStream();<br>\r\n&nbsp;&nbsp;using (Stream compressor = new <span style=\"color:#ff0000\">GZipStream</span>(raw, CompressionMode.Compress<span style=\"text-decoration:underline\">))</span>&mdash;&mdash;<span style=\"color:#ff0000\">？</span><span style=\"text-decoration:underline\">&nbsp;<span style=\"color:#ff0000\">just\r\n want .zip format replace by .gz format</span></span><br>\r\n&nbsp;&nbsp;{<br>\r\n&nbsp;&nbsp;&nbsp;byte[] buffer = new byte[2048];<br>\r\n&nbsp;&nbsp;&nbsp;int n;<br>\r\n&nbsp;&nbsp;&nbsp;while ((n = input.Read(buffer, 0, buffer.Length)) != 0)<br>\r\n&nbsp;&nbsp;&nbsp;{<br>\r\n&nbsp;&nbsp;&nbsp;&nbsp;compressor.Write(buffer, 0, n);<br>\r\n&nbsp;&nbsp;&nbsp;}<br>\r\n&nbsp;<span style=\"color:#000000\">&nbsp;&nbsp;byte[] bytes = raw.ToArray();&nbsp;</span></p>\r\n<p><span style=\"color:#000000\">&nbsp;&nbsp;&nbsp;return bytes;</span><br>\r\n&nbsp;&nbsp;}<br>\r\n&nbsp;}<br>\r\n}</p>\r\n<p>&nbsp;So now Which I should to choose?&nbsp; ZipOutputStream and ZipInputStream?How to do it?</p>\r\n<p><span>&nbsp;</span></p>\r\n<p>&nbsp;</p>\r\n",
    "PostedDate": "2011-08-12T00:00:48.253-07:00",
    "UserRole": null,
    "MarkedAsAnswerDate": null
  },
  {
    "Id": "657884",
    "ThreadId": "268802",
    "Html": "<p>ZipOutputStream.&nbsp; Check the documentation for examples.</p>",
    "PostedDate": "2011-08-13T17:50:07.277-07:00",
    "UserRole": null,
    "MarkedAsAnswerDate": null
  },
  {
    "Id": "658735",
    "ThreadId": "268802",
    "Html": "<p>1) First problem, <span style=\"color: #800080;\">compress file to&nbsp;file</span>:</p>\r\n<p><span style=\"text-decoration: underline;\"><span style=\"color: #0000ff;\">string filesToZip = Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetName().CodeBase) + \"<a href=\"file://new.xml/\" target=\"_blank\">\\\\new.xml\";&nbsp;&nbsp; </a>&nbsp;&nbsp; </span></span><span style=\"color: #0000ff;\">&nbsp;</span><span style=\"color: #0000ff;\"><a href=\"file://new.xml/\" target=\"_blank\">//</a></span><span style=\"color: #0000ff;\">pathname :<span style=\"color: #ff0000;\">program files/test/new.xml</span></span></p>\r\n<p><span style=\"text-decoration: underline;\"><span style=\"color: #0000ff;\">string outputFileName =&nbsp; Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetName().CodeBase) + \"<a href=\"file://new.zip/\" target=\"_blank\">\\\\new.zip</a>\";&nbsp; </span></span><span style=\"color: #0000ff;\">&nbsp;//<span style=\"color: #0000ff;\">pathname :<span style=\"color: #ff0000;\">program files/test/new.zip</span></span></span></p>\r\n<p><span style=\"color: #0000ff;\"><span style=\"color: #0000ff;\"></span></span><span style=\"color: #0000ff;\">public void Zipup()</span><span style=\"text-decoration: underline;\"><span style=\"color: #0000ff;\"><br />{<br />&nbsp;using (ZipFile zip = new ZipFile())<br />&nbsp;{<br />&nbsp;&nbsp;zip.<span style=\"color: #ff0000;\">AddFile</span>(filesToZip);<br />&nbsp;&nbsp;zip.<span style=\"color: #ff0000;\">Save</span>(outputFileName);<br />&nbsp;}<br />}</span></span></p>\r\n<p><span style=\"color: #000000;\">But this a problem, when I d<span class=\"hps\">ecompression this zip, there are two folders, just like <span style=\"color: #ff0000;\">program files/test/new.xml</span>. But I want when I d<span class=\"hps\">ecompression this zip,there is just new.xml. What I can do????</span></span></span></p>\r\n<p><span style=\"color: #000000;\"><span class=\"hps\"></span></span></p>\r\n<p><span style=\"color: #000000;\"><span class=\"hps\"><span class=\"hps\">2) Second problem, <span style=\"color: #800080;\">compress stream to stream</span>, last time you say I can \"ZipOutputStream.&nbsp; Check the documentation for examples\". </span></span></span></p>\r\n<p><span style=\"color: #000000;\"><span class=\"hps\"><span class=\"hps\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (<span style=\"color: #ff0000;\">filesToZip</span>.Count == 0)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></span></span></p>\r\n<p><span style=\"color: #000000;\"><span class=\"hps\"><span class=\"hps\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; using (var raw = File.Open(<span style=\"color: #ff0000;\">outputFileName</span>, FileMode.Create, FileAccess.ReadWrite))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; using (var output = new ZipOutputStream(raw))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; foreach (string inputFileName in filesToZip)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; output.PutNextEntry(inputFileName);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; using (var input = File.Open(inputFileName, FileMode.Open, FileAccess.Read, FileShare.Read | FileShare.Write))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&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; byte[] buffer = new byte[2048];<br />&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; int n;<br />&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; while ((n = input.Read(buffer, 0, buffer.Length)) &gt; 0)<br />&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 />&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; output.Write(buffer, 0, n);<br />&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 />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></span></span></p>\r\n<p><span style=\"color: #000000;\"><span class=\"hps\"><span class=\"hps\"><span style=\"color: #ff0000;\">filesToZip and <span style=\"color: #ff0000;\">outputFileName </span></span>are all filenames, <span style=\"color: #000000;\"><span class=\"hps\"><span class=\"hps\">what I can do to change it to <span style=\"color: #800080;\">compress stream to stream<span style=\"color: #000000;\">????</span></span></span></span></span></span></span></span></p>",
    "PostedDate": "2011-08-16T02:15:21.61-07:00",
    "UserRole": null,
    "MarkedAsAnswerDate": null
  },
  {
    "Id": "661238",
    "ThreadId": "268802",
    "Html": "<p>File.Open returns a stream.&nbsp; in your code, replace File.Open() with the method that returns your stream.</p>\r\n<p>&nbsp;</p>",
    "PostedDate": "2011-08-21T10:30:37.033-07:00",
    "UserRole": null,
    "MarkedAsAnswerDate": null
  }
]