Ich versuche, eine komprimierte Datei programmgesteuert zu entpacken.
Ich habe versucht, die System.IO.Compression.GZipStream
Klasse in .NET zu verwenden, aber wenn meine App ausgeführt wird (eigentlich ein Komponententest), wird folgende Ausnahme angezeigt:
System.IO.InvalidDataException: Die magische Zahl im GZip-Header ist nicht korrekt. Stellen Sie sicher, dass Sie einen GZip-Stream übergeben.
Mir ist jetzt klar, dass eine .zip
Datei nicht mit einer .gz
Datei identisch ist , und das GZip
ist auch nicht mit Zip
.
Da ich die Datei jedoch extrahieren kann, indem ich manuell auf die komprimierte Datei doppelklicke und dann auf die Schaltfläche "Alle Dateien extrahieren" klicke, sollte es meiner Meinung nach auch im Code eine Möglichkeit geben, dies zu tun.
Daher habe ich versucht, Process.Start()
den Pfad zur komprimierten Datei als Eingabe zu verwenden. Dadurch öffnet meine App ein Fenster, in dem der Inhalt der komprimierten Datei angezeigt wird. Das ist alles in Ordnung, aber die App wird auf einem Server installiert, auf dem sich keiner befindet, um auf die Schaltfläche "Alle Dateien extrahieren" zu klicken.
Wie kann ich meine App dazu bringen, die Dateien in den komprimierten Dateien zu extrahieren?
Oder gibt es einen anderen Weg, es zu tun? Ich bevorzuge es im Code, ohne Bibliotheken oder Apps von Drittanbietern herunterzuladen. Die Sicherheitsabteilung ist nicht besonders begeistert davon ...