5

I am looking for a compression component that supports Delphi2010 and allow me to do the basic operations of:

  • create .zip archives
  • extract from .zip archives
  • delete .zip archives

I also need the component to be free for commercial usage and possibly does not use/rely on a DLL (I don't mind if it does).

So far I have looked into ZipForge, FlexCompress, KaZip and UnRAR, but I found out that I needed to purchase a license to commercially use ZipForge and FlexCompress. When it came to KaZip, there were errors in the code so I was unsuccessful in terms of installing the component. Whereas UnRAR was just that; it only decompressed .zip or .rar archives.

So In summary, I need a compression component that:

  • is free for commercial use
  • supports Delphi 2010
  • performs the above stated operations
  • does not use DLLs (however, I do not mind)
ple103
  • 2,080
  • 6
  • 35
  • 50
  • 1
    Check out [this SO question.][1] [1]: http://stackoverflow.com/questions/1770386/freeware-zip-component-for-delphi-2010-delphi-xe – Brian Frost Sep 16 '11 at 09:09

6 Answers6

8

Abbrevia will serve your purposes nicely.

LachlanG
  • 4,047
  • 1
  • 23
  • 35
  • Is there any place I can get help with Abbrevia? Or view code examples? – ple103 Sep 16 '11 at 08:54
  • 3
    Abbrevia used to be a commercial product, and the PDF documentation is/was excellent. It includes several tutorials in it to get you started, and the source download includes an "Examples" folder with a bunch of samples in Delphi and C++Builder. I haven't explicitly updated the examples for Unicode support, but most of them will compile as-is. If you have questions it's best to post in Abbrevia's forums in SourceForge, but here or Embarcadero's .thirdparty newsgroups work too. – Zoë Peterson Sep 16 '11 at 14:57
3

The JCL has a nice set of compression classes for both files (ie common archive formats) and for in memory stuff (TStreams) in jclCompression unit. For some formats it requires DLL, it uses 7zip one. But it is open source and free (MPL / LGPL).

ain
  • 22,394
  • 3
  • 54
  • 74
  • +1 for JclCompression. Really simple to use, BUT ... lack of documentation ! At least, examples will help. – TridenT Sep 19 '11 at 19:42
3

Take a look at this OpenSource SynZip unit. It's even faster for decompression than the default unit shipped with Delphi, and it will generate a smaller exe (crc tables are created at startup).

In order to delete a zip content, you can mix TZipWriter and TZipReader to copy only the needed archived files inside the zip.

No external dll is needed. Very small code overhead. Works from Delphi 6 to XE (shortly for XE2).

I just made some changes to handle Unicode file names inside Zip content, not only Win-Ansi charset but any Unicode chars.

Arnaud Bouchez
  • 42,305
  • 3
  • 71
  • 159
2

We use ZipMaster.

Needs a DLL, works with 2010.

awmross
  • 3,789
  • 3
  • 38
  • 51
1

There is also this component build around 7zip dll (alpha stage, but support for D7 to D2010):

http://www.rg-software.de/rg/index.php?option=com_content&view=article&id=29&Itemid=51

az01
  • 1,988
  • 13
  • 27
0

I've used Zlib and Abbrevia and are working very well

RBA
  • 12,337
  • 16
  • 79
  • 126