Почему огромное расхождение в размерах между двумя одинаковыми файлами zip?

351
twpc

Я использую WinZip, чтобы сжать целые каталоги кода и отправить их коллегам-программистам. Он вносит изменения и отправляет мне каталоги кода.

Игнорируя тот факт, что это не очень хороший способ поддерживать чистоту кода, когда мы оба работаем над ним, я замечаю, что его zip-файлы намного меньше моих, и в основном содержат те же данные (мой диапазон около 36 000 КБ, его 2000 KB). Я считаю, что он также использует WinZip.

Что здесь происходит, и как я могу сделать мой "более сжатым"?

1
Почему вы используете WinZip, когда возможность архивировать файлы встроена в Windows? Rich Bradshaw 14 лет назад 0
* Игнорирование того факта, что это не очень хороший способ сохранить код чистым, когда мы оба над ним работаем * - и это кошмар, если вы хотите увидеть, что изменилось, или хотите (частично) откатиться к предыдущей версии , даже если над этим работает только один человек ...? (Я знаю, вы * знаете *, что это далеко от идеала, но есть [так] (http://stackoverflow.com/questions/297153/can-you-recommend-a-svn-closed-source-project-hosting- сайт) [много] (http://stackoverflow.com/questions/59791/free-online-private-svn-repositories) бесплатных репозиториев, которые делают жизнь намного проще ...) Arjan 14 лет назад 2

3 ответа на вопрос

0
ChrisF

Если вы оба используете WinZip, то файлы должны быть одинакового размера (при условии, что вы используете один и тот же алгоритм сжатия).

Единственное, о чем я могу думать, это то, что вы отправляете ему все - исходные, промежуточные файлы, двоичные файлы, изображения и т. Д., А он просто отправляет вам код. Скорее всего, вы добавляете что-то, что не очень хорошо сжимается, что увеличивает размер вашего архива.

Откройте два архива рядом и сравните их содержимое. Посмотрите, содержит ли один (ваш) больше файлов, чем другой (его).

Вы не говорите, какой язык вы используете, но, принимая C ++ (в качестве примера), просто добавьте * .cpp и * .h (или * .hpp, в зависимости от вашего компилятора) в архив.

0
S.gfx

Установите параметр «максимальное сжатие» или «лучшее сжатие» в диалоговом окне winzip. Или используйте лучший алгоритм, это возможно с компрессором, таким как 7zip, используя формат 7zip. Хотя выигрыш часто не стоит обычных вещей. LZMA - отличный алгоритм сжатия, но не в каждом программном обеспечении.

Осторожно: EXE-файлы плохо сжимаются (проверьте, если вы оставляете exe-файлы в папке, а он нет), существуют специальные exe-компрессоры. Опять же, все зависит от того, сколько вам действительно нужно сделать более легкие упаковки, в зависимости от времени и усилий, вложенных в него.

Winzip standard all, или Winrar, в любом случае является хорошим способом обеспечить доставку вещи без проб, часто люди не могут открыть определенный файл, если он сжат определенным образом. Я работаю с моим другом, и для совместной работы мы используем 7zip с форматом 7z и максимальными настройками сжатия.

0
leonbloy

Может также относиться к сжатию solid-vs-non-solid. Это может иметь существенное значение, если имеется много небольших файлов.

Например, если ваш друг использует такой формат, как tgz (tar + gzip), (или 7z или программы winrar с опцией твердого сжатия), он сначала неявно упаковывает все маленькие файлы в один огромный файл, а затем сжимает все это как все. Вместо этого Winzip сначала сжимает каждый файл, а затем упаковывает их в один ZIP-файл.

Похожие вопросы