Compression de fichiers avec FWZip

Dans un article précédent j’avais parlé de la classe TZipFile qui permet de faire de la compression de fichiers. Elle est très pratique. Par contre, il y a une fonctionnalité manquante qui est importante pour moi. Il s’agit de l’ajout d’un mot de passe à l’archive. C’est une limitation qui est connue d’Embarcadero depuis C++Builder XE2. Malheureusement il n’y a pas encore de solution qui a été apportée.

Je suis tombé par hasard sur une bibliothèque qui supporte cette fonctionnalité. Il s’agit de FWZip de Александр (Rouse_) Багель. Elle est codée en Pascal Objet et fonctionne sur Win32 et Win64 dans des projets VCL et FireMonkey. Elle peut être téléchargée sur GitHub.

C’est très simple à utiliser. Il faut d’abord ajouter les fichiers suivants à votre projet:

  • FWZipConsts.pas
  • FWZipCrc32.pas
  • FWZipCrypt.pas
  • FWZipReader.pas
  • FWZipStream.pas
  • FWZipWriter.pas
  • FWZipZLib.pas

The tadalafil for sale cheap pharmaceutical market has been loaded with diverse choices of medicinal drugs which have been proving to be extremely helpful for getting recovered from the severe adverse reactions. To buy steroids in UK you should visit anabolicmuscles.com. anabolicmuscles.com have become most cialis buy online learningworksca.org trusted and acknowledge steroid supplier in UK since 2002. You’re safe now… you’re safe now… » Whoa! Sounds familiar, eh? Are you that overprotective over your smartphone-specifically, your iPhone? Hello! Who wouldn’t? Considering how much iPhone costs these days; one cannot simply afford cheap sildenafil an iPhone. Why? According to his repeated clinical research based on a large quantity of patients with chronic prostatitis, doctor Miller best levitra price makes progress in curing this disease by applying a new method.

On ajoute ensuite le fichier d’en-tête et la bibliothèque nécessaire.

#include <FWZipWriter.hpp>
#pragma comment(lib, "Shlwapi") // Pour PathCanonicalizeW / PathCanonicalizeA

Pour écrire une archive, on utilise ce code:

    TFWZipWriter* Zip = new TFWZipWriter(false,
        Fwzipzlib::TCompressionLevel::clLevel3, "MotDePasse");

    Zip->AddFile("C:\\img\\img0.png");
    Zip->AddFile("C:\\img\\img1.png");

    Zip->BuildZip("C:\\img\\images.zip");

    delete Zip;

Et voilà, maintenant lors de l’extraction des fichiers, un mot de passe sera demandé.

7-Zip Enter password window
Fenêtre de saisie de mot passe du logiciel 7-Zip