Eugene Sichkar, a software developer, has published a project containing a .NET/C# interface to the 7-Zip archiving application on Code Project. 7-Zip is an open source application used to archive/un-archive files in various formats.
7-Zip is an open source archiving application supporting the following formats according to 7-Zip's web site:
- Packing / unpacking: 7z, ZIP, GZIP, BZIP2 and TAR
- Unpacking only: RAR, CAB, ISO, ARJ, LZH, CHM, MSI, WIM, Z, CPIO, RPM, DEB and NSIS
7-Zip currently runs on all desktop versions of Windows starting with Windows 98 to Vista. There is an effort going on to port it to Linux/Unix. 7-Zip is free and licensed under GNU LGPL license, and the UnRAR module is licensed with some restrictions.
Eugene Sichkar, a software developer, has created a C# interface to the 7-Zip DLLs included in the 7-Zip application, allowing anyone to use the 7-Zip compressing/decompressing capabilities from within a .NET application. The following interfaces are implemented according to Eugene:
IProgress
- basic progress callbackIArchiveOpenCallback
- archive open callbackICryptoGetTextPassword
- callback for prompt password for archiveIArchiveExtractCallback
- extract files from archive callbackIArchiveOpenVolumeCallback
- open additional archive volumes callbackISequentialInStream
- simple read-only stream interfaceISequentialOutStream
- simple write-only stream interfaceIInStream
- input stream interface with seek capabilityIOutStream
- output stream interfaceIInArchive
- main archive interface
Using the .NET interface one accesses the 7-Zip functionality (7z.dll) directly not via a console line, or a console line wrapper. The interface is released under the The Common Development and Distribution License (CDDL). Downloading the C# source code requires registration with Code Project.