12

Бывают случаи, когда необходимо, чтобы файлы в ZIP-архиве были в определенном порядке (например, в настоящее время я создаю EPUB, которые требуют, чтобы первой записью в ZIP-файле был файл mimetype ). Как я могу сделать это на Windows?

В настоящее время я использую 7-Zip в качестве архиватора, но не вижу опции для управления порядком файлов. Можно ли это сделать с помощью 7-zip? Если нет, какие варианты у меня есть?

6 ответов6

3

7-zip версия GUI:

  1. извлечь mimetype из файла EPUB
  2. удалить mimetype в файле EPUB
  3. переименуйте mimetype в !mimetype
  4. добавить !mimetype в файл EPUB
  5. переименовать !mimetype к mimetype внутри файла EPUB

7-zip простая версия для перетаскивания:

Перейдите на страницу загрузки 7-zip и загрузите 7-Zip Extra: standalone console version, 7z DLL, Plugin for Far Manager (не работает со стабильной 9.20, но хорошо работает с 9.38 бета и 15.06 бета). Извлечь 7za.exe . Сохраните приведенный ниже код как файл repair.bat :

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

Поместите 7za.exe и repair.bat в одну директорию и просто перетащите файл EPUB на repair.bat .

3

Одним из способов может быть: большинство архиваторов и инструментов архивирования имеют возможность добавлять или добавлять дополнительные элементы файла в исходный архив. Создайте свой архив с элементами, которые вы хотите вверху, затем добавьте дополнительные элементы файлов в этот созданный архив. Я знаю, что это работает в Windows собственные инструменты ZIP.

похоже, что реальный ответ за мной, здесь для C # https://stackoverflow.com/questions/5898787/creating-an-epub-file-with-a-zip-library

здесь для HTML (используя 7z)
http://next.blurb.com/2011/02/17/how-to-make-an-ipad-photo-book/

конкретно эта часть

2.Откройте папку sample-photo-book и сначала скопируйте файл mimetype в (пустой) архив.
3.Теперь скопируйте другие папки (META-INF и OEBPS) в архив.


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

Содержимое файла mimetype не должно содержать никаких начальных отступов или пробелов, не должно начинаться с подписи Unicode (или метки порядка байтов), а регистр строки типа MIME должен быть точно таким, как представлен выше. Кроме того, файл mimetype не должен быть ни сжатым, ни зашифрованным, и в его заголовке ZIP не должно быть дополнительного поля.

2

Создание EPUB требует двухэтапного процесса, сначала добавьте mimetype без (!) сжатие, второй добавить другие файлы / папки. Таким образом, используя 7z, вы можете взять следующие команды:

7z a -mx=0 dummy.zip mimetype

Чтобы использовать подстановочный знак *, вы должны переместить файл mimetype в другую папку и начать второй шаг:

7z a -r dummy.zip *

После этого переименуйте ZIP в EPUB, и вы ушли!

1

По моему опыту, самый простой ответ (для Windows, 7, 64-bit) - использовать встроенную Zip-функциональность Window. Используйте команду "Отправить", чтобы отправить mimetype в новую заархивированную папку, затем используйте 7Zip, чтобы добавить META-INF и OEBPS к новому zip-файлу. Кажется, это всегда работает с точки зрения последовательности файла mimetype. Я не имел успеха, выполняя эту операцию исключительно с 7-почтовым индексом. (Это для ePUBS, но оно должно работать для секвенирования и в других областях.)

Я надеюсь, что это помогает кому-то еще.

0

У меня была такая же проблема при работе с EPUB-файлами.

В Windows 7 я исправил это с помощью этой странной уловки, где я убедился, что я отсортировал все файлы, которые я собирался сделать, в zip таким образом, чтобы сделать mimetype файл сверху (обычно сортируя их по размеру). Затем я удостоверился, что пометил все файлы сверху вниз курсором, прежде чем отправлять их в сжатую (zip) папку (например, https://support.microsoft.com/en-us/help/14200/windows-compress-uncompress-zip-файлы). После этого я мог изменить имя и тип файла на любой.epub.

Однако после того, как я обновился до Windows 10, этот прием больше не работал. К счастью, я нашел другой путь. Сначала вы отправляете нужный файл вверху (mimetype) в zip-файле в сжатую (zip) папку. Убедитесь, что это только тот файл. Затем я беру другие файлы, которые хочу заархивировать (две папки в моем случае), пометить их курсором и перетащить их в созданный мной zip-файл. После этого Windows добавит новые файлы в zip-файл и оставит сверху файл, который вы изначально заархивировали.

0

Использование WinRar сделал свое дело для меня. Я добавил mimetype в zip-архив (без сжатия!), А затем добавил остальные папки, обычное сжатие.

Это решение не работало с 7-zip для меня, поскольку оно продолжает переупорядочивать файлы.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .