How do I compress multiple files into a single archive with Delphi

大憨熊 提交于 2019-11-29 01:25:52

问题


I need to compress multiple files into a single archive using Delphi. I'd prefer to use freeware components or open-source components because I am very very cheap :-)

My primary requirements are:

  1. Possible to encrypt the archive
  2. Can create common archives that can be opened by anyone with a copy of WinZip

Does anyone have suggestions with components that they have used? Please feel free to suggest free as well as commercial components/libraries.


回答1:


Perhaps DelphiZip is what you are looking for, it seems to support encryption, too, and is WinZip compatible. It is released under LGPL.




回答2:


KaZip is an open-source ZIP archiver. Here is its description:

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

It is not compatible with Delphi 2009 yet, but with some minor changes in the source code, you can make it work in Delphi 2009 too. Actually, that's what I did.

Regards




回答3:


I`m using madZip from madCollection




回答4:


I'm surprised no-one has mentioned JclCompression yet - it's part of the well-known Jedi Code Library (JCL). Here's a view of the unit itself : http://jcl.svn.sourceforge.net/viewvc/jcl/trunk/jcl/source/common/JclCompression.pas?view=markup

Note, it's compatible with 7-zip DLL version 4.64 - newer versions might not be backwards-compatible...




回答5:


I recommend the $69 ZipForge from ComponentAce.




回答6:


You could use 7zip (LZMA) bindings for Pascal (compatible with Delphi): http://www.birtles.org.uk/programming/




回答7:


Another Delphi resource to look at would be InnoSetup. The source code is available and with a little work might give you an edge up on what your trying to do. There is an option to create self extracting zip archives which are compatible with WinZip,

My thoughts are not to use the program, but to use his source as a starting point since it is very heavily tested and extremely solid.




回答8:


There are infozips zip32 and unzip32 dlls. They can be used from Delphi (even from Visual Basic), there are interface units/modules for both. The interface isn't as good as I would have liked it, but it works.



来源:https://stackoverflow.com/questions/400627/how-do-i-compress-multiple-files-into-a-single-archive-with-delphi

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!