Устранение двойного сжатия при шифровании папок
При шифровании папки программа сначала упаковывала все файлы и подкаталоги в ZIP-архив в оперативной памяти.
На этом этапе происходило внутреннее сжатие каждого файла внутри ZIP-архива с параметром MZ_DEFAULT_COMPRESSION.
Чекбокс "Сжатие" не влиял на этот внутренний процесс, поэтому он происходил всегда.
В результате возникал избыточный процесс двойного сжатия:
сначала файлы сжимались при упаковке в ZIP-архив, а затем весь этот архив сжимался ещё раз основным алгоритмом.
Это приводило к лишней нагрузке на процессор и замедляло операцию.
Отключено внутреннее сжатие:
В функциях zip_walk и ZipFolderToMemory флаг сжатия MZ_DEFAULT_COMPRESSION заменён на MZ_NO_COMPRESSION.
Теперь ZIP-архив используется исключительно как контейнер для сохранения структуры каталогов и имён файлов, не выполняя сжатия.
Внешнее, более эффективное сжатие всего архива по-прежнему контролируется чекбоксом "Сжатие".
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
При шифровании папки программа сначала упаковывала все файлы и подкаталоги в ZIP-архив в оперативной памяти.
На этом этапе происходило внутреннее сжатие каждого файла внутри ZIP-архива с параметром MZ_DEFAULT_COMPRESSION.
Чекбокс "Сжатие" не влиял на этот внутренний процесс, поэтому он происходил всегда.
В результате возникал избыточный процесс двойного сжатия:
сначала файлы сжимались при упаковке в ZIP-архив, а затем весь этот архив сжимался ещё раз основным алгоритмом.
Это приводило к лишней нагрузке на процессор и замедляло операцию.
Отключено внутреннее сжатие:
В функциях zip_walk и ZipFolderToMemory флаг сжатия MZ_DEFAULT_COMPRESSION заменён на MZ_NO_COMPRESSION.
Теперь ZIP-архив используется исключительно как контейнер для сохранения структуры каталогов и имён файлов, не выполняя сжатия.
Внешнее, более эффективное сжатие всего архива по-прежнему контролируется чекбоксом "Сжатие".
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg