[
  {
    "Id": "462474",
    "ThreadId": "218099",
    "Html": "<p>I'm writing an ePub creation tool, and using  DotNetZip to make the zip container.</p>\r\n<p>The special file <code>mimetype</code> must be first in the container, according to Epub guide (http://www.hxa.name/articles/content/epub-guide_hxa7241_2007.html#containerstructure).</p>\r\n<p>ZipFile.Save() method places entries in the container sorted or unsorted (according SortEntriesBeforeSaving property).</p>\r\n<p>How I can place the <code>mimetype </code>file first?</p>",
    "PostedDate": "2010-07-01T22:35:56.097-07:00",
    "UserRole": null,
    "MarkedAsAnswerDate": null
  },
  {
    "Id": "462500",
    "ThreadId": "218099",
    "Html": "<p>I found some workaround</p>\r\n<p>\r\n<div style=\"color:black;background-color:white\">\r\n<pre>zipFile.AddDirectory(directory);\r\n\r\n<span style=\"color:blue\">const</span> <span style=\"color:blue\">string</span> fakeName = <span style=\"color:#a31515\">&quot;         !&quot;</span>;\r\n<span style=\"color:blue\">const</span> <span style=\"color:blue\">string</span> mimetypeName = <span style=\"color:#a31515\">&quot;mimetype&quot;</span>;\r\n\r\n<span style=\"color:blue\">var</span> mimetype = zipFile.Entries.FirstOrDefault(e =&gt; e.FileName == mimetypeName);\r\n<span style=\"color:blue\">if</span>(mimetype != <span style=\"color:blue\">null</span>)\r\n{\r\n    zipFile.RemoveEntry(mimetype);\r\n\r\n    <span style=\"color:blue\">byte</span>[] source = File.ReadAllBytes(Path.Combine(directory, mimetypeName));\r\n    mimetype = zipFile.AddEntry(fakeName, source);\r\n}\r\n\r\nzipFile.SaveProgress +=\r\n        (sender, args) =&gt;\r\n        {\r\n            <span style=\"color:blue\">if</span> (args.CurrentEntry == mimetype &amp;&amp; args.CurrentEntry.FileName != mimetypeName)\r\n                args.CurrentEntry.FileName = mimetypeName;\r\n        };\r\n</pre>\r\n</div>\r\n</p>\r\n<p>&nbsp;</p>",
    "PostedDate": "2010-07-01T23:52:22.043-07:00",
    "UserRole": null,
    "MarkedAsAnswerDate": null
  }
]