Torrentzip.NET

GordonJ, the author of RomVault and Pleasuredome member, developed a multi-process .NET version of Torrentzip.

Windows and Linux with mono are supported.

The number of processes depends on the amount of CPU cores in the system.

It should be a lot faster than the old command-line Torrentzip written in C language.

Links:

Below is a screenshot of Torrentzip.NET in action:



What is torrentzipping
Different computers, when compressing exactly the same files to a ZIP archive, may create ZIPs archives that are slightly different.

Torrentzip.NET is special: it creates exactly the same ZIP in any computer when the original files are the same.

Most torrents in Pleasuredome were created with archives that were torrentzipped.

That's why you have to torrentzip your ZIPs to join a torrent at a higher percentage of completion.

How to use
Small guide follows:
 * 1) As input, choose which formats of files should be processed. Files of other formats will be ignored.
 * 2) As output, choose ZIP or 7z according to the format you want the resulting archives to be. "Original" keeps the original format of each archive.
 * 3) "Fix" should be disabled if you don't want the files to be actually processed. This only shows a preview of what would happen if "Fix" was enabled.
 * 4) "Force" forces all files to be processed, even if they were already torrentzipped or torrent7zipped.
 * 5) The slider selects how many of the logic processors of the CPU should be used. Sliding to the left reduces the amount, making torrentzipping take longer but reducing hard disk stress.
 * 6) Drag and drop the files and folders that will be processed on the square of the upper left of the window.

Additional information
When Torrentzip.NET recompresses a ZIP archive it adds a special comment to the ZIP archive itself.

The comment can be seen with proper compression software. The image below is an example with WinRAR:



On the image,  has the comment , which is like a hash: it is used by Torrentzip.NET to identify if the ZIP was changed by other software.

If you attempt to torrentzip a ZIP that wasn't modified since the last time it was torrentzipped, Torrentzip.NET will skip the torrentzipping process for that ZIP, which means a lot of time is saved.

Be careful, when you see a ZIP archive with torrentzip's typical comment, it means that that ZIP was torrentzipped at least once, but you can't say if the ZIP is torrentzipped now. The only way to know if that ZIP is torrentzipped is torrentzipping it: if the torrentzipping process is skipped, the file was already torrentzipped.

Another interesting fact is that all files when recompressed have their "last modified" timestamp set to 24 December 1996 at 11:32 PM. Some old games in torrents like eXoDOS and Win3xO rely on file timestamps as copy protection measures and because of that these torrents are not torrentzipped.

Versions
As of version 2.0, it is able to read 7z archives and convert Torrent7zipped archives to Torrentzip archives.

As of version 2.5, it can create solid 7-zip archives with a constant hash. This is experimental and NOT compatible with Torrent7zip (t7z).

As of version 2.5.1, a bug in the 7z code was fixed, that happened when working with non-compressed files inside of 7z files.

As of version 2.5.2, the command-line binary written in C# language was released for the first time, and the GUI version was updated with the latest ZIP64 fixes.

As of version 2.5.4, fixes the ASCII end and UTF8 start issue.

As of version 2.6, added a slider to select the number of cores to use, and also store all UI selected options to the config file immediately.

As of version 2.6.1, fixed the bug where if you adjusted the number of cores the % reporting UI no longer worked.

As of version 2.6.2, ZIPs smaller than 4 GB but that had more the 65,536 files were created with corrupt ZIP64 header.

As of version 2.7.0, added Pause and Cancel buttons. More files can be dropped while it is still running.

As of version 2.8.0, a new compression library was added, so it reads many more compression types. Uses code page 437 (IBM) for the default ZIP filenames, and US Unicode if characters are not found in code page 437. Fixed a bug that was unnecessarily adding a ZIP64 central directory header to some ZIP64 files.

As of version 2.8.1, the .exe was missing a needed library.

Applications that support torrentzipping

 * DrizzleZip
 * RomVault
 * TorrentCheck

Alternative
gatti, member of the Pleasuredome community, created a version of Torrentzip.NET for Java. Currently it doesn't support 7z archives.


 * GitHub: Github - Jtrrntzip