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.
Rispetto script #115, questo assembly non è legato alle specifiche di Open Packaging Conventions e non genera alcun fine automatico di definizione dei content type.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Scrivere selettori CSS più semplici ed efficienti con :is()
Il nuovo controllo Range di Blazor 9
Utilizzare una qualunque lista per i parametri di tipo params in C#
Utilizzare i variable font nel CSS
Gestire progetti NPM in .NET Aspire
Utilizzare il metodo Index di LINQ per scorrere una lista sapendo anche l'indice dell'elemento
Path addizionali per gli asset in ASP.NET Core MVC
Inference di dati strutturati da testo con Semantic Kernel e ASP.NET Core Web API
Gestire gli errori nelle Promise JavaScript con try()
Fornire parametri ad un Web component HTML
Ridurre il reflow ottimizzando il CSS
Abilitare automaticamente il force push di un gruppo su Azure DevOps