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
Cancellare una run di un workflow di GitHub
Effettuare il log delle chiamate a function di GPT in ASP.NET Web API
Utilizzare QuickGrid di Blazor con Entity Framework
Utilizzare il metodo IntersectBy per eseguire l'intersection di due liste
Creare una libreria CSS universale: Nav menu
Usare il colore CSS per migliorare lo stile della pagina
Utilizzare WhenEach per processare i risultati di una lista di task
Creare un webhook in Azure DevOps
Creare una libreria CSS universale: Immagini
Recuperare App Service cancellati su Azure
Inference di dati strutturati da testo con Semantic Kernel e ASP.NET Core Web API
Proteggere le risorse Azure con private link e private endpoints