Hallo Leute,
ZIP Archive aus einem Ordner (mit Unterordnern) erstellen und wieder zurück entpacken ist nicht das Problem. Entsprechende Codeschnipsel findet man überall im Netz.
Ich stand nun aber vor der Aufgabe einzelne Dateien aus einem ZIP-Archiv zu entfernen. Im Speziellen die mit der Endung .exe, .dll und .msi.
Zuerst war dieser Eintrag als Frage gedacht, ich bin jedoch im Laufe des Postings selbst drauf gekommen.
Folgenden Code habe ich mir dafür zurechtgeschrieben, welchen ich Euch nicht vorenthalten möchte:
Sollte er es "wert" sein, dann bitte in die Tips & Tricks verschieben.
ZIP Archive aus einem Ordner (mit Unterordnern) erstellen und wieder zurück entpacken ist nicht das Problem. Entsprechende Codeschnipsel findet man überall im Netz.
Ich stand nun aber vor der Aufgabe einzelne Dateien aus einem ZIP-Archiv zu entfernen. Im Speziellen die mit der Endung .exe, .dll und .msi.
Zuerst war dieser Eintrag als Frage gedacht, ich bin jedoch im Laufe des Postings selbst drauf gekommen.
Folgenden Code habe ich mir dafür zurechtgeschrieben, welchen ich Euch nicht vorenthalten möchte:
Sollte er es "wert" sein, dann bitte in die Tips & Tricks verschieben.
VB.NET-Quellcode
- Dim zipPath As String ="c:\test.zip"
- Dim Zaehler As Integer = 0
- Using archive As ZipArchive = ZipFile.Open(zipPath, ZipArchiveMode.Update) 'ZipFile.OpenRead(zipPath)
- Dim GefundeneDatei(archive.Entries.Count + 1) As Boolean
- For Each entry As ZipArchiveEntry In archive.Entries
- If entry.FullName.EndsWith(".exe", StringComparison.OrdinalIgnoreCase) Or entry.FullName.EndsWith(".msi", StringComparison.OrdinalIgnoreCase) Or entry.FullName.EndsWith(".dll", StringComparison.OrdinalIgnoreCase) Then
- 'entry.Delete() 'würde eine Fehlermeldung bringen, da die Each Schleife neu initialisiert würde
- GefundeneDatei(Zaehler) = True
- End If
- Zaehler += 1
- Next
- 'Hier alle gefundenen Dateieinträge durchgehen und löschen
- 'Durch das Löschen verschiebt sich der entry-Wert um eines nach oben (negativ).
- Dim DateiIndex As Integer = 1
- For i As Integer = 1 To Zaehler
- If GefundeneDatei(i) = True Then
- 'MsgBox(archive.Entries(DateiIndex).FullName)
- archive.Entries(DateiIndex).Delete()
- Else
- DateiIndex += 1
- End If
- Next i
- End Using
Liebe Grüße
Roland Berghöfer
Meine aktuellen und kostenlos verwendbaren Tools (mit VB.NET erstellt): freeremarkabletools.com | priconman.com | SimpleCalendar | AudibleTouch | BOComponent.com | bonit.at
Roland Berghöfer
Meine aktuellen und kostenlos verwendbaren Tools (mit VB.NET erstellt): freeremarkabletools.com | priconman.com | SimpleCalendar | AudibleTouch | BOComponent.com | bonit.at