Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Using 7-Zip's Compressing/Decompressing Functionality from a .NET Application

Using 7-Zip's Compressing/Decompressing Functionality from a .NET Application

This item in japanese

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 callback
    • IArchiveOpenCallback - archive open callback
    • ICryptoGetTextPassword - callback for prompt password for archive
    • IArchiveExtractCallback - extract files from archive callback
    • IArchiveOpenVolumeCallback - open additional archive volumes callback
    • ISequentialInStream - simple read-only stream interface
    • ISequentialOutStream - simple write-only stream interface
    • IInStream - input stream interface with seek capability
    • IOutStream - output stream interface
    • IInArchive - 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.

Rate this Article