Как сжать несколько файлов в один архив с помощью Delphi

Мне нужно сжать несколько файлов в один архив с помощью Delphi. Я бы предпочел использовать бесплатные компоненты или компоненты с открытым исходным кодом, потому что я очень-очень дешевый :-)

Мои основные требования:

  1. Можно зашифровать архив
  2. Может создавать общие архивы, которые может открывать любой, у кого есть копия WinZip.

Есть ли у кого-нибудь предложения по компонентам, которые они использовали? Не стесняйтесь предлагать как бесплатные, так и коммерческие компоненты / библиотеки.

Вы смотрели ответы на этот вопрос?

Craig Stuntz 30.12.2008 19:01

Я рассматривал этот метод, но ответы в основном сосредоточены на решениях типа 7-zip. Я также ищу комментарии, которые есть у всех, кто использует эти инструменты.

Mick 30.12.2008 19:06

Преимущество 7-zip в том, что он действительно очень хорошо работает с любым ZIP-файлом, который вы когда-либо использовали. Другие компоненты обычно работают нормально с наиболее ZIP.

Craig Stuntz 30.12.2008 19:41

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

Charles Faiga 30.12.2008 20:12

Что такое версия Delphi?

Please_Dont_Bully_Me_SO_Lords 26.02.2013 22:07

Плюс 1 за то, что "очень-очень дешево" !!

Reversed Engineer 30.05.2017 18:39
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
11
6
8 149
8
Перейти к ответу Данный вопрос помечен как решенный

Ответы 8

Ответ принят как подходящий

Возможно, вы ищете DelphiZip, похоже, он тоже поддерживает шифрование и совместим с WinZip. Он выпущен под LGPL.

DelphiZip требует отдельных DLL

Ian Boyd 24.04.2012 18:05

Есть информационные архивы zip32 и unzip32 dll. Их можно использовать из Delphi (даже из Visual Basic), для обоих есть интерфейсные блоки / модули. Интерфейс не так хорош, как хотелось бы, но работает.

Вы можете использовать привязки 7zip (LZMA) для Pascal (совместимые с Delphi): http://www.birtles.org.uk/programming/

Я рекомендую ZipForge за 69 долларов от ComponentAce.

Еще один ресурс Delphi, на который стоит обратить внимание, - это InnoSetup. Исходный код доступен, и немного поработав, вы сможете лучше понять, что вы пытаетесь сделать. Есть возможность создавать самораспаковывающиеся zip-архивы, совместимые с WinZip,

Я не думаю об использовании программы, а о том, чтобы использовать его исходный код в качестве отправной точки, поскольку он очень тщательно протестирован и чрезвычайно надежен.

Я использую madZip от madCollection

Я даже не знал об этом. Хороший!

Mick 02.01.2009 21:00

Я удивлен, что никто еще не упомянул JclCompression - это часть известной библиотеки кодов джедаев (JCL). Вот вид самого устройства: http://jcl.svn.sourceforge.net/viewvc/jcl/trunk/jcl/source/common/JclCompression.pas?view=markup

Обратите внимание, он совместим с 7-zip DLL версии 4.64 - более новые версии могут быть несовместимы с предыдущими версиями ...

KaZip - архиватор ZIP с открытым исходным кодом. Вот его описание:

KAZIP is fast, simple ZIP archiver and dearchiver which uses most popular ZIP format.Inflate - Deflate zip compression format (no encryption support and no multidisk support).KAZip is totaly based on Delphi VCL - no DLL, ActiveX or other external libraries.KAZip is totaly stream oriented so you can deal with data only in memory without creating temporary files, etc. If you need to add zip-unzip functionality to your application,KAZIP is the right solution. Additional ZipListView and ZipTreeView components for easy visualisation.Functionality:Zip-Unzip using Inflate-DeflateBZip2 unzipping trough usage of BZIP2 units from Edison Mera Menndez.Functions:Adding Files, Folders, Streams; Selecting, Deselecting, Checking;Extracting to files and streams;Delete and Rename filesCreate, Delete and Rename foldersTest, RepairMany new properties and methods, improved speed.A very complex Zip Browser demo application is included

Он еще не совместим с Delphi 2009, но с некоторыми незначительными изменениями в исходном коде вы можете заставить его работать и в Delphi 2009. Собственно, я так и сделал.

С Уважением

Другие вопросы по теме