Archivi come ZIP, RAR, TAR, GZIP, BZIP2 sono comunemente usati per archiviare più di un file e una cartella in un unico contenitore. Un altro motivo principale per i file di archivio è ridurre la dimensione totale del file utilizzando algoritmi di compressione. Proprio come l’analisi e l’estrazione di dati da documenti di vari formati di file, puoi trattare i file di archivio allo stesso modo. Puoi estrarre il testo, le immagini e persino i metadati dai file compressi all’interno degli archivi. In questo articolo, discuteremo di come estrarre i dati degli archivi ZIP utilizzando C# con le tue applicazioni .NET.
Di seguito vengono trattati i seguenti argomenti:
API .NET per estrarre i dati dei file ZIP
GroupDocs.Parser fornisce la soluzione di analisi dei documenti per gli sviluppatori. Utilizzerò la sua API .NET per estrarre i dati dei file ZIP negli esempi C# di questo articolo. L’API consente inoltre l’estrazione di testo, immagini e metadati da un lungo elenco di formati di documento supportati come documenti di elaborazione testi, presentazioni, fogli di calcolo, e-mail, database, eBook e molti altri.
Puoi scaricare il programma di installazione delle DLL o MSI dalla sezione download o installare l’API aggiungendo il relativo pacchetto alla tua applicazione .NET tramite NuGet.
PM> Install-Package GroupDocs.Parser
Come estrarre i dati dei file ZIP in C#
GroupDocs.Parser for .NET supporta l’estrazione di dati da vari formati di file di compressione come ZIP, RAR, TAR, BZIP2 e GZIP. Dopo aver recuperato la raccolta di file dal file compresso, è possibile estrarre ulteriormente qualsiasi tipo di dato da ciascun file.
I passaggi seguenti mostrano come estrarre i dati dei file ZIP e recuperare il testo da ogni file racchiuso in C#.
- Carica l’archivio ZIP utilizzando la classe Parser.
- Ottieni gli allegati utilizzando il metodo GetContainer
- Attraversa la raccolta di allegati.
- Per ogni allegato, puoi ottenere il suo diverso tipo di dati utilizzando i rispettivi metodi della classe Parser.
Il codice sorgente mostra come estrarre i dati dei file ZIP usando C#. In questo esempio, estrarrò l’intero testo da tutti i file all’interno dell’archivio ZIP.
// Estrai i dati degli archivi ZIP in C#
using (Parser parser = new Parser(@"path/sample.zip"))
{
// Estrarre gli allegati dal contenitore
IEnumerable<ContainerItem> attachments = parser.GetContainer();
// Iterare sulla raccolta di entità
foreach (ContainerItem item in attachments)
{
// Stampa le INFORMAZIONI SUL FILE
Console.WriteLine("-----------------------------------");
Console.WriteLine("Name: " + item.Name);
Console.WriteLine("File Size: " + item.Size + " Bytes");
Console.WriteLine("-----------------------------------");
try
{
using (Parser attachmentParser = item.OpenParser())
{
// Estrarre il testo dell'entità ZIP
using (TextReader reader = attachmentParser.GetText())
{
Console.WriteLine(reader == null ? "No text" : reader.ReadToEnd());
}
}
}
catch (UnsupportedDocumentFormatException)
{
Console.WriteLine("Isn't supported.");
}
}
}
L’output del codice sorgente di cui sopra mostra il testo recuperato da uno dei file PDF all’interno del file ZIP.
-----------------------------------
Name: sample.pdf
File Size: 33370 Bytes
-----------------------------------
Heading
This is the first paragraph of the sample document that contains some sample
text, bulleted list, numbered list and more.
• Bullet Item 1
• Bullet Item 2
• Bullet Item 3
This is the second paragraph of the sample document and after this, there is a
numbered list:
1. Numbered Item 1
2. Numbered Item 2
3. Numbered Item 3
Ottieni una licenza API gratuita
Puoi ottenere una licenza temporanea gratuita per utilizzare l’API senza i limiti di valutazione.
Conclusione
Per riassumere, hai imparato come estrarre i dati degli archivi ZIP usando C# all’interno della tua applicazione .NET. In particolare, ora puoi estrarre dati da file ZIP, RAR, TAR, GZIP e BZIP. Puoi persino creare la tua applicazione .NET di estrazione dati per file compressi. Per maggiori dettagli o informazioni sull’API, visita la documentazione. Per domande, contattaci tramite il forum.