Zip действительно не сложно проанализировать, если вы можете следовать довольно простой спецификации формата файла и готовы рассчитывать на расширение zlib, которое будет установлено для обработки распаковки.
В противном случае, придумайте свой собственный формат файла архива, это не сложно. Это может быть что-то очень простое, как это:
- Первые 4 байта: количество файлов в архиве
- Следующие 4 байта: количество байтов в имени файла
- Следующие N байт: Имя файла
- Следующие 10 байтов: количество байтов в файле
- Следующие N байт: Содержимое файла
- Повторите вышеуказанные 4 строки при необходимости
Так что очень простой архивный файл может выглядеть как
00020007foo.txt0000000012Hello world!0007bar.txt0000000010It worked!
Конечно, вы можете улучшить его, сохранив длины в двоичном формате (например, используя pack
с форматом 'N'), добавив контрольные суммы и так далее. Но так было проще объяснить.