Während Sie mit Archiven in Ihren .NET-Anwendungen arbeiten, müssen Sie möglicherweise Dateien in einem ZIP manipulieren. Im vorherigen Beitrag haben Sie gesehen, wie Sie Dateien/Ordner in einem ZIP-Archiv hinzufügen. In diesem Artikel erfahren Sie, wie Sie Dateien in den ZIP-Archiven programmgesteuert in C# löschen. Fangen wir also an.
C# .NET-API zum Löschen von Dateien in ZIP-Archiven
Aspose.ZIP for .NET ist eine leistungsstarke API, die eine breite Palette von Archivierungsfunktionen bietet. Sie können damit Archive gängiger Formate wie ZIP, TAR, 7z und GZip erstellen und bearbeiten. Wir werden diese API verwenden, um die Dateien in ZIP-Archiven dynamisch zu löschen. Sie können die API entweder von NuGet installieren oder die DLL herunterladen und manuell darauf verweisen.
PM> Install-Package Aspose.Zip
Dateien in ZIP-Archiven in C# löschen
Es gibt zwei Möglichkeiten, Dateien in einem ZIP-Archiv mit Aspose.ZIP für .NET zu löschen. Einer verwendet den Index der Datei, während der andere die Klasse ArchiveEntry verwendet. Sehen wir uns an, wie Sie die beiden oben genannten Methoden verwenden.
Löschen Sie eine Datei in ZIP mit ArchiveEntry
Aspose.ZIP für .NET stellt jede Datei/jeden Ordner innerhalb einer ZIP-Datei als ein ArchiveEntry-Objekt dar, und alle Dateien und Ordner bilden eine Sammlung von ArchiveEntry-Objekten. Um eine Datei aus ZIP zu löschen, können Sie also auf das entsprechende ArchiveEntry-Objekt aus der Sammlung zugreifen und es löschen. Im Folgenden sind die Schritte zum Löschen einer Datei aus einem ZIP-Archiv in C# aufgeführt.
- Laden Sie das ZIP-Archiv mit der Klasse Archive.
- Durchlaufen Sie die Einträge in der Sammlung Archive.Entries.
- Filtern Sie die gewünschten Dateien/Ordner und fügen Sie sie einer Liste hinzu.
- Löschen Sie jeden Eintrag in der Liste mit der Methode Archive.DeleteEntry(ArchvieEntry).
- Speichern Sie das aktualisierte ZIP-Archiv mit der Methode Archive.Save(string).
Das folgende Codebeispiel zeigt, wie Dateien in einem ZIP-Archiv in C# gelöscht werden.
// Laden Sie das ZIP-Archiv
using (var archive = new Archive("Archives/archive.zip"))
{
// Liste zum Aufbewahren von Dateien, die gelöscht werden sollen
List<ArchiveEntry> entriesToDelete = new List<ArchiveEntry>();
// Durchlaufen Sie die ZIP-Einträge
foreach(ArchiveEntry entry in archive.Entries)
{
// Datei/Ordner zur Liste hinzufügen
if(entry.Name.ToLower().Contains("source"))
{
entriesToDelete.Add(entry);
}
}
// Alle aufgelisteten Einträge löschen
foreach(var entry in entriesToDelete)
{
archive.DeleteEntry(entry);
}
// Aktualisiertes Archiv speichern
archive.Save("Archives/updated-archive.zip");
}
Löschen Sie eine Datei in ZIP mit Index
Sie können die ZIP-Einträge auch über ihren Index löschen. Im Folgenden sind die Schritte zum Entfernen einer Datei/eines Ordners aus einem ZIP-Archiv mithilfe seines Index aufgeführt.
- Laden Sie das ZIP-Archiv mit der Klasse Archive.
- Löschen Sie die Datei, indem Sie den Index in der Methode Archive.DeleteEntry(int) angeben.
- Speichern Sie das aktualisierte ZIP-Archiv mit der Methode Archive.Save(string).
Das folgende C#-Codebeispiel zeigt, wie eine Datei in einem ZIP-Archiv mithilfe ihres Index entfernt wird.
// Laden Sie das ZIP-Archiv
using (var archive = new Archive("Archives/archive.zip"))
{
// Datei nach Index löschen
archive.DeleteEntry(0);
// Aktualisiertes Archiv speichern
archive.Save("Archives/updated-archive.zip");
}
Holen Sie sich eine kostenlose API-Lizenz
Sie können Aspose.ZIP für .NET ohne Evaluierungseinschränkungen verwenden, indem Sie eine kostenlose temporäre Lizenz erwerben.
Fazit
In diesem Artikel haben Sie gelernt, wie Sie Dateien aus ZIP-Archiven in C# löschen. Anhand von Codebeispielen haben wir gesehen, wie man Dateien über die ArchiveEntry-Klasse oder den Index löscht. Falls Sie mehr über Aspose.ZIP für .NET erfahren möchten, besuchen Sie Dokumentation. Sie können Ihre Fragen auch über unser Forum stellen.