Oggi vediamo come creare uno zip di una cartella in modo semplice e con pochissime righe di codice.

Oltre alle novità più importanti e rilevanti, il .NET Framework 4.5 contiene alcune nuove API che cercano di rendere sempre più completo il mondo managed.
Tra queste rientrano due nuovi assembly, di nome System.IO.Compression e System.IO.Compression.FileSystem, che permettono di creare, manipolare ed estrarre file Zip.

La suddivisione in due assembly è stata fatta per separare classi dedicate alla compressione applicata agli Stream, da quelle dedicate alla compressione applicata a file.
Il primo assembly è disponibile con le Portable Class Library, mentre il secondo lo è solo con il framework completo.

L’assembly System.IO.Compression.FileSystem contiene poche, ma efficaci classi.
La più importante è ZipFile, che con i suoi metodi CreateFromDirectory e ExtractToDirectory permettono di creare uno Zip dalla cartella o estrarlo.

L’utilizzo è molto semplice ed è illustrato in questo script.

// Creo lo zip dalla cartella
// Compressione ottimale e includendo anche la cartella stessa
ZipFile.CreateFromDirectory(@"c:\daComprimere", @"c:\mioZip.zip", CompressionLevel.Optimal, true);

// Estraggo lo zip in un'altra cartella
ZipFile.ExtractToDirectory(@"c:\mioZip.zip", @"c:\mioZipEstratto");

Come vediamo dal codice, basta indicare il nome della cartella, il file Zip e un booleano che ci permette di indicare se comprimere la cartella stessa o solo i file e le cartelle che contiene.

Leave a Reply

Your email address will not be published.