Como posso controlar a ordem dos arquivos em um arquivo ZIP?

Como posso controlar a ordem dos arquivos em um arquivo ZIP?

Há momentos em que é necessário que os arquivos em um arquivo ZIP estejam em uma ordem específica (por exemplo, estou criandoEPUBs, que exigem que a primeira entrada no ZIP seja o mimetypearquivo). Como posso fazer isso no Windows?

Atualmente estou usando7-Zipcomo meu arquivador, mas não vejo uma opção para controlar a ordem dos arquivos. Isso pode ser feito com 7-zip? Se não, que opções eu tenho?

Responder1

Versão da GUI 7-zip:

  1. extrair mimetypedo arquivo EPUB
  2. excluir mimetypeno arquivo EPUB
  3. renomear mimetypepara!mimetype
  4. adicionar !mimetypeao arquivo EPUB
  5. renomear !mimetypepara mimetypedentro do arquivo EPUB

Versão simples de arrastar e soltar 7-zip:

Vá paraPágina de download do 7-zipe download 7-Zip Extra: standalone console version, 7z DLL, Plugin for Far Manager(não funciona com 9.20 estável, mas funciona bem com 9.38 beta e 15.06 beta). Extrair 7za.exe. Salve o código abaixo como repair.batarquivo:

7za x %1 mimetype -y
7za d %1 mimetype
move /y mimetype !mimetype
7za a %1 !mimetype
del /f !mimetype
7za rn %1 !mimetype mimetype

Coloque 7za.exee repair.batno mesmo diretório e simplesmente arraste seu arquivo EPUB para repair.bat.

Responder2

Uma maneira seria: a maioria dos arquivadores e ferramentas de arquivamento têm a capacidade de anexar ou adicionar itens de arquivo adicionais ao arquivo original. Crie seu arquivo com os itens desejados na parte superior e adicione itens de arquivos adicionais a esse arquivo criado. Eu sei que isso funciona nas próprias ferramentas ZIP do Windows.

parece que a resposta real está além de mim, aqui para C# https://stackoverflow.com/questions/5898787/creating-an-epub-file-with-a-zip-library

aqui para HTML (usando 7z)
http://next.blurb.com/2011/02/17/how-to-make-an-ipad-photo-book/

especificamente esta parte

2.Abra a pasta sample-photo-book e copie primeiro o tipo MIME do arquivo para o arquivo (vazio).
3.Agora, copie as demais pastas (META-INF e OEBPS) para o arquivo.


http://idpf.org/epub/30/spec/epub30-ocf.html#physical-container-zip

O conteúdo do arquivo mimetype não deve conter nenhum preenchimento inicial ou espaço em branco, não deve começar com a assinatura Unicode (ou marca de ordem de byte) e o caso da string do tipo MIME deve ser exatamente como apresentado acima. Além disso, o arquivo mimetype não deve ser compactado nem criptografado e não deve haver um campo extra em seu cabeçalho ZIP.

Responder3

A criação de um EPUB requer um processo de duas etapas: primeiro adicione o tipo MIME sem qualquer (!) compactação e depois adicione os outros arquivos/pastas. Então, usando 7z você poderia usar os seguintes comandos:

7z a -mx=0 dummy.zip mimetype

Para poder usar o curinga * você deve mover o arquivo mimetype para outra pasta e iniciar o segundo passo:

7z a -r dummy.zip *

Depois disso, renomeie o ZIP para EPUB e pronto!

Responder4

Usar o winrar funcionou para mim. Adicionei o tipo MIME a um arquivo zip (descompactado!), Depois adicionei as pastas restantes, compactação regular.

Esta solução não funcionou para mim com o 7-zip, pois ele continua reordenando os arquivos.

informação relacionada