Come creare e proteggere un archivio zip con password

In questa pagina vedremo come creare un archivio zip, estrarlo ed eventualmente proteggerlo con una password.

Nella libreria dei template, sotto la sezione Scripts, è disponibile l’oggetto ZipUnzipLogic che consente di creare/scompattare archivi. Dispone dei metodi esportati CreateZipArchive, per creare un file zip e UnzipArchive per scompattare i contenuti di un file zip. L’oggetto dispone delle seguenti proprietà:

  • Source: quando si esegue il metodo CreateZipArchive, indica il percorso sorgente dalla quale si reperiscono i file o la cartella da comprimere. Invece, per il metodo UnzipArchiveindica il percorso del file zip da scompattare.

  • Target: quando si esegue il metodo CreateZipArchive indica il percorso del file zip nella quale i contenuti compressi verrano collocati.Invece, per il metodo UnzipArchive indica la cartella nella quale i file estratti verranno salvati.

  • Password: parametro opzionale. Consente di specificare una password da utilizzare sia nella fase di compressione o decompressione.

Importazione dello script in progetto

Lo script utilizza la libreria SharpZipLib che permette di comprimere, decomprimere file zip e proteggerli eventualmente con una password. Una volta importato lo script nel progetto, è necessario eseguire i seguenti passi affinché la soluzione .NET possa essere compilata correttamente:

  1. Aprire la soluzione del progetto UNIQO:

  2. Aprire il gestore dei pacchetti NuGet (in Visual Studio da Strumenti > Gestore pacchetti NuGet > Gestisci pacchetti NuGet per la Soluzione )

  3. Nella sezione Sfoglia, cercare la seguente libreria: SharpZipLibe installarla.

  4. Fare doppio clic sul file .csproj del progetto e aggiungere la seguente riga:<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies> dopo la riga <AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>

Ricompilare la soluzione

Per utilizzare lo script, i metodi CreateZipArchive e UnzipArchive devono essere invocati tramite un evento come ad esempio MouseClick di un pulsante.