title: Add file to zip archive without compression
body: <p>In Go, how do we add a file to a zip archive without compression?</p>
  
  <p>For context, I'm following along with an <a href="http://www.ibm.com/developerworks/xml/tutorials/x-epubtut/index.html" rel="noreferrer">IBM tutorial</a> to create an epub zip file. It shows the following Python code:</p>
  
  <pre><code>import zipfile, os
  
  def create_archive(path='/path/to/our/epub/directory'):
      '''Create the ZIP archive.  The mimetype must be the first file in the archive 
      and it must not be compressed.'''
  
      epub_name = '%s.epub' % os.path.basename(path)
  
      # The EPUB must contain the META-INF and mimetype files at the root, so 
      # we'll create the archive in the working directory first and move it later
      os.chdir(path)    
  
      # Open a new zipfile for writing
      epub = zipfile.ZipFile(epub_name, 'w')
  
      # Add the mimetype file first and set it to be uncompressed
      epub.write(MIMETYPE, compress_type=zipfile.ZIP_STORED)
  
      # For the remaining paths in the EPUB, add all of their files
      # using normal ZIP compression
      for p in os.listdir('.'):
          for f in os.listdir(p):
              epub.write(os.path.join(p, f)), compress_type=zipfile.ZIP_DEFLATED)
      epub.close()
  </code></pre>
  
  <p>In this example, the file <code>mimetype</code> (which has content <code>application/epub+zip</code> only) must not be compressed.</p>
  
  <p>The Go <a href="http://golang.org/pkg/archive/zip/" rel="noreferrer">documentation</a> does provide one example of writing to a zip archive, but all files are compressed.</p>