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 metodoCreateZipArchive
, indica il percorso sorgente dalla quale si reperiscono i file o la cartella da comprimere. Invece, per il metodoUnzipArchive
indica il percorso del file zip da scompattare.Target
: quando si esegue il metodoCreateZipArchive
indica il percorso del file zip nella quale i contenuti compressi verrano collocati.Invece, per il metodoUnzipArchive
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:
Aprire la soluzione del progetto UNIQO:
Aprire il gestore dei pacchetti NuGet (in Visual Studio da Strumenti > Gestore pacchetti NuGet > Gestisci pacchetti NuGet per la Soluzione )
Nella sezione Sfoglia, cercare la seguente libreria:
SharpZipLib
e installarla.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.