A .NET wrapper for the 7zip compression application

A small application which allows to call 7zip to create an archive, but skip compression for specific file extensions, which are usually already compressed.

I originally wrote this small application a few months ago, to be able to call 7zip in order to create an archive, but skip compression for specific file extensions, which are usually already compressed. To my knowledge, at that time, the 7zip GUI did not support this functionality. It is possible to achieve the same result by issuing a command line, specifying the extensions to skip, however, this is not very user friendly. Here are some screenshots:

The main application window:

The main application window

The extensions selection window:

The extensions window

In order to use the program, you must have 7zip already installed. This is not a replacement for 7zip, it is a wrapper around an existing 7zip executable. If you don't have 7zip already, you can get it at http://www.7-zip.org/

The way the program works is rather simple:

- you specify the location of your 7zip executable (you only have to do this once, unless the location changes in the future).
- you specify the folder you want to compress (includes sub folders by default) and the compression level required (by default 5 i.e. medium).
- you specify the location and filename of the archive to be created.
- you specify the extensions you want to exclude from high compression (by clicking the "Select" button which opens a new window), and the level of compression you want to use for them (by default 0 = store - no compression). The extensions are populated on the fly by a text file which exists in the application directory. You can modify this file in your text editor if you don't like the default extensions that exist there.
- you click compress.

What the program does, it generates a .bat file with the command to run, placed in the application directory, and runs this in a console window. It is simple as that.

The compression takes place in 2 stages. In the first stage, the files that are to be compressed with high compression are processed, and in the second stage, the rest of the files that are to be packed as low or no compression are added to the archive.

I have marked this release as "Alpha" as there are a few more features I want to add, time permitting, and it has not been extensively tested yet by anyone else other than me. However, it does work on my machine (except the "other options" part, which is for future work).

Update: I have now updated the release status to Beta, as more than 6 months after release and with several downloads there have been no complaints about bugs. I am aware that normally there should be a new release for going to Beta, but unfortunately I haven't had the time to add more features, and I have been doing more ASP.NET/MVC/web services development lately.

The software requires .NET 4.0 to be installed, and I am providing a ClickOnce installer file (which hopefully works for everybody, at least it did on my machine...) for people who are not interested in the code or don't have the time to compile it. It is written in C# using Visual Studio 2010 and uses WPF.

Please note that you need to have permission to access the files you are trying to compress, otherwise you will get an error.

This is the first project I am publishing on Codeplex, so hopefully everything will work fine, but if not, please let me know so that I can fix it. In any case, your feedback is much appreciated.

Kind Regards.

PS: The project is released under the Mozilla Public License 2.0, which basically means in a nutshell that you are free to take it and do whatever you want with it with no obligation. The only restriction is that if you do decide to re-release the source code as is or modified to the public domain, under your own name, you are obliged to acknowledge the source of the code (this page) and to contribute back here any code modifications you make. I think it's fair enough...

Last edited Jul 28, 2013 at 10:35 PM by mp_uk, version 23