Quando si lavora con gli archivi dalle applicazioni .NET, potrebbe essere necessario unire più file ZIP o TAR. Ad esempio, potresti voler estrarre file e cartelle da più archivi e inserirli in un unico archivio. Per ottenerlo, questo articolo spiega come unire più file ZIP o TAR in C#. Tratteremo la fusione di ZIP in ZIP, TAR in TAR, ZIP in TAR e TAR in ZIP.
- API C# per unire file ZIP e TAR
- Unisci più file ZIP in C#
- Unisci più file TAR in C#
- Combina ZIP con TAR in C#
- Combina TAR con ZIP in C#
API C# .NET per unire file ZIP e TAR
Per unire più archivi ZIP e TAR, utilizzeremo Aspose.ZIP for .NET. È un’API .NET ricca di funzionalità che consente di creare e manipolare vari formati di archivio popolari. Puoi scaricare la DLL dell’API o installarla direttamente utilizzando NuGet.
PM> Install-Package Aspose.Zip
Unisci più file ZIP in C#
Iniziamo il nostro viaggio nell’unione di archivi con il formato ZIP. Prenderemo due archivi ZIP e raccoglieremo le loro voci in un unico file ZIP. Di seguito sono riportati i passaggi per unire più file ZIP in C#.
- Carica il primo file ZIP usando la classe Archive.
- Allo stesso modo, carica il secondo file ZIP usando la classe Archive.
- Ora, scorrere le voci del primo ZIP utilizzando la raccolta Archive.Entries.
- Copia ogni ArchiveEntry in un oggetto MemoryStream usando il metodo ArchiveEntry.Open().CopyTo(MemoryStream).
- Aggiungi la voce al secondo ZIP usando il metodo Archive.CreateEntry(string, MemoryStream).
- Salva lo ZIP unito come file separato usando il metodo Archive.Save(string).
L’esempio di codice seguente mostra come unire due file ZIP in C#.
// Carica l'archivio ZIP di origine
using (Archive sourceArchive = new Archive("Archives/SourceArchive.zip"))
{
// Carica l'archivio ZIP di destinazione
using (Archive destArchive = new Archive("Archives/DestinationArchive.zip"))
{
// Iterare sulle voci
foreach (ArchiveEntry entry in sourceArchive.Entries)
{
// Check is entry non è una directory. Le voci che sono directory vengono saltate, ma i loro file vengono aggiunti rispettando i percorsi relativi.
if (!entry.IsDirectory)
{
// Carica la voce nel flusso di memoria
MemoryStream mem = new MemoryStream();
entry.Open().CopyTo(mem);
// Aggiungi voce al CAP di destinazione
destArchive.CreateEntry(entry.Name, mem);
}
}
// Salva l'archivio unito separatamente
destArchive.Save("Archives/merged-archive.zip");
}
}
Unisci più file TAR in C#
Vediamo ora come unire più archivi TAR in C#. Di seguito sono riportati i passaggi per raggiungere questo obiettivo.
- Carica il primo file TAR usando la classe TarArchive.
- Allo stesso modo, carica il secondo file TAR usando la classe TarArchive.
- Ora, scorrere le voci del primo TAR utilizzando la raccolta TarArchive.Entries.
- Copia ogni TarEntry in un oggetto MemoryStream usando il metodo TarEntry.Open().CopyTo(MemoryStream).
- Aggiungi la voce al secondo TAR usando il metodo TarArchive.CreateEntry(string, MemoryStream).
- Salvare il TAR unito utilizzando il metodo TarArchive.Save(string).
L’esempio di codice seguente mostra come unire più file TAR in C#.
// Carica l'archivio TAR di origine
using (TarArchive sourceArchive = new TarArchive("Archives/SourceArchive.tar"))
{
// Carica l'archivio TAR di destinazione
using (TarArchive destArchive = new TarArchive("Archives/DestinationArchive.tar"))
{
// Iterare sulle voci
foreach (TarEntry entry in sourceArchive.Entries)
{
// Check is entry non è una directory. Le voci che sono directory vengono saltate, ma i loro file vengono aggiunti rispettando i percorsi relativi.
if (!entry.IsDirectory)
{
// Carica la voce nel flusso di memoria
MemoryStream mem = new MemoryStream();
entry.Open().CopyTo(mem);
// Aggiungi voce al TAR di destinazione
destArchive.CreateEntry(entry.Name, mem);
}
}
// Salva l'archivio unito separatamente
destArchive.Save("Archives/merged-archive.tar");
}
}
Unisci ZIP in TAR in C#
In questa sezione vedremo come unire un file ZIP nell’archivio TAR in C#. Di seguito sono riportati i passaggi per eseguire questa operazione.
- Carica il file ZIP usando la classe Archive.
- Carica il file TAR usando la classe TarArchive.
- Ora, scorrere le voci di ZIP utilizzando la raccolta Archive.Entries.
- Copia ogni ArchiveEntry in un oggetto MemoryStream usando il metodo ArchiveEntry.Open().CopyTo(MemoryStream).
- Aggiungi voce a TAR utilizzando il metodo TarArchive.CreateEntry(string, MemoryStream).
- Salvare il file TAR utilizzando il metodo TarArchive.Save(string).
L’esempio di codice seguente mostra come unire un archivio ZIP in TAR.
// Carica l'archivio ZIP di origine
using (Archive zipArchive = new Archive("Archives/SourceArchive.zip"))
{
// Carica l'archivio TAR di destinazione
using (TarArchive tarArchive = new TarArchive("Archives/DestinationArchive.tar"))
{
// Iterare sulle voci
foreach (ArchiveEntry entry in zipArchive.Entries)
{
// Check is entry non è una directory. Le voci che sono directory vengono saltate, ma i loro file vengono aggiunti rispettando i percorsi relativi.
if (!entry.IsDirectory)
{
// Carica la voce nel flusso di memoria
MemoryStream mem = new MemoryStream();
entry.Open().CopyTo(mem);
// Aggiungi voce al TAR di destinazione
tarArchive.CreateEntry(entry.Name, mem);
}
}
// Salva l'archivio unito separatamente
tarArchive.Save("Archives/merged-archive.tar");
}
}
Combina TAR con ZIP in C#
Simile all’esempio precedente, puoi unire un file TAR in ZIP. L’esempio di codice seguente mostra come estrarre file da un TAR e unirli in un ZIP.
// Carica archivio TAR
using (TarArchive tarArchive = new TarArchive("Archives/SourceArchive.tar"))
{
// Carica archivio ZIP
using (Archive zipArchive = new Archive("Archives/DestinationArchive.zip"))
{
// Iterare sulle voci
foreach (TarEntry entry in tarArchive.Entries)
{
// Check is entry non è una directory. Le voci che sono directory vengono saltate, ma i loro file vengono aggiunti rispettando i percorsi relativi.
if (!entry.IsDirectory)
{
// Carica la voce nel flusso di memoria
MemoryStream mem = new MemoryStream();
entry.Open().CopyTo(mem);
// Aggiungi voce a ZIP
zipArchive.CreateEntry(entry.Name, mem);
}
}
// Salva l'archivio unito separatamente
zipArchive.Save("Archives/merged-archive.zip");
}
}
Ottieni una licenza API gratuita
Puoi utilizzare Aspose.ZIP per .NET senza limitazioni di valutazione ottenendo una licenza temporanea gratuita.
Conclusione
In questo articolo, hai imparato come unire più archivi ZIP o TAR a livello di codice in C#. In particolare, abbiamo spiegato come unire in modo dinamico file ZIP, file TAR, ZIP in TAR e TAR in ZIP. Per saperne di più su Aspose.ZIP per .NET, puoi visitare la documentazione. Inoltre, puoi inviare le tue domande al nostro forum.