Jetzt reparieren
- Datei ablegen
- Reparatur läuft lokal
- Ergebnis herunterladen
WinRAR, 7-Zip und der Kommandozeilenbefehl unzip geben allesamt eine Variante von "Unexpected end of archive" aus, und zwar aus demselben grundlegenden Grund: Sie lesen die Datei und erwarten mehr Bytes, als tatsächlich vorhanden sind. Der Download blieb hängen, eine Kopie von einem USB-Stick wurde zu früh abgebrochen, oder eine Cloud-Synchronisierung stoppte auf halbem Weg. Ziehe das Archiv oben hinein, und das Werkzeug untersucht seine tatsächliche Struktur in deinem Browser — es findet die Einträge, die vor dem Abschneidepunkt vollständig geschrieben wurden, und extrahiert diese, anstatt die gesamte Datei abzulehnen, weil ihr das Ende fehlt.
Was der Fehler auf Ebene des Dateiformats bedeutet
Eine ZIP-Datei ist kein einziger durchgehender Block — sie ist eine Abfolge von lokalen Datei-Einträgen, gefolgt von einem zentralen Verzeichnis ganz am Ende. Jeder Eintrag beginnt mit der Signatur PK\x03\x04, trägt seinen eigenen Namen, seine Kompressionsmethode und Größe und danach die per Deflate komprimierten Daten. Nach dem letzten Eintrag folgt das zentrale Verzeichnis (PK\x01\x02-Datensätze), und die Datei endet mit dem End Of Central Directory-Datensatz, PK\x05\x06. Dieses EOCD ist das Inhaltsverzeichnis: Es sagt dem Entpacker, wie viele Dateien es gibt und wo jede beginnt.
Hier liegt der Haken. Das Inhaltsverzeichnis befindet sich ganz am Ende der Datei. Wenn ein Download oder eine Kopie abbricht, ist genau das Ende das, was fehlt — der Entpacker springt also dorthin, wo das EOCD sein müsste, findet dort Daten (oder nichts) statt der Signatur PK\x05\x06 und meldet "Unexpected end of archive." Das Archiv ist nicht durcheinandergewürfelt; ihm fehlt schlicht sein Inhaltsverzeichnis und möglicherweise die letzte Datei oder zwei.
RAR und 7z scheitern auf dieselbe Weise aus demselben Grund. Ein RAR führt Block-Header und am Ende eine Archiv-Ende-Markierung; ein .7z hält seine Header-Datenbank am Ende der Datei und komprimiert normalerweise viele Dateien gemeinsam zu einem einzigen soliden Datenstrom. In jedem Fall sind die Metadaten, die das Werkzeug zuerst braucht, genau jene Metadaten, die ein Abschneiden zuerst zerstört.
Was trotzdem herauskommt und wie die Rettung funktioniert
Da sich jeder ZIP-Eintrag selbst beschreibt, ist das gesamte zentrale Verzeichnis für die Extraktion überflüssig — es ist ein Inhaltsverzeichnis, nicht die Daten. Das Werkzeug ignoriert das fehlende EOCD und durchläuft die Datei stattdessen von vorne nach hinten, greift jeden lokalen Header PK\x03\x04 auf, den es findet, und entpackt den darauf folgenden Deflate-Datenstrom, solange die Bytes reichen. Jede Datei, die vor dem Abbruch vollständig geschrieben wurde, kommt intakt zurück; die eine Datei, die auf dem Abschneidepunkt lag, kommt möglicherweise nur teilweise oder gar nicht zurück. Das läuft als reines TypeScript in deinem Tab — kein installiertes Archivprogramm, nichts wird irgendwohin gesendet.
RAR und 7z sind stärker eingeschränkt, aber nicht hoffnungslos. In einem RAR lassen sich die vor dem Abschneiden gespeicherten Dateien weiterhin decodieren, und ein RAR, das mit einem Wiederherstellungsdatensatz (recovery record) erstellt wurde, repariert sich erheblich besser, weil dieser Datensatz genau dafür ausgelegt ist, fehlende Blöcke zu rekonstruieren. Ein .7z ist der heikle Fall: ohne Wiederherstellungsdatensatz und mit solider Kompression, die die Dateien miteinander verkettet, kann der Verlust des Endes die Dekompression von allem nach dem letzten vollständigen Block zunichtemachen. Das Werkzeug rettet, was die überlebenden Blöcke zulassen, und ist ehrlich, wenn ein solider Datenstrom nicht fortgesetzt werden kann.
Die ehrliche Grenze: Bytes nach dem Abbruch sind weg
Keine Software kann Daten wiederherstellen, die nie in der Datei waren. Wenn der Download bei 60 % abbrach, existieren die letzten 40 % der komprimierten Daten nicht auf deiner Festplatte, und nichts — weder dieses Werkzeug noch WinRARs eigene Reparatur noch eine kostenpflichtige Recovery-Suite — kann sie zurückerfinden. Die Lösung dafür ist, das Archiv erneut von der Quelle herunterzuladen oder zu kopieren, damit du die vollständigen Bytes hast.
Was wir zuverlässig tun können, ist zu verhindern, dass ein nur teilweise angekommenes Archiv ein Totalverlust wird. Wenn neun von zehn Dateien ankamen, bevor die Verbindung abriss, gibt es keinen Grund, die neun zu verlieren, während man der zehnten hinterherjagt. Und weil der gesamte Vorgang in deinem Browser abläuft, wird ein Archiv, das Finanzunterlagen, Quellcode oder persönliche Dokumente enthalten könnte, nie auf einen unbekannten Server kopiert, nur um einen Blick hineinzuwerfen — du kannst den Netzwerk-Tab beobachten und bestätigen, dass kein einziges Byte deinen Rechner verlässt.
Was sich reparieren lässt und was nicht
Kann repariert werden
- Ein ZIP, das sein zentrales Verzeichnis / EOCD durch einen abgeschnittenen Download verloren hat — die Einträge vor dem Abbruch werden durch Abtasten der lokalen Header extrahiert
- Einzelne Dateien in einem nur teilweise heruntergeladenen ZIP, die vollständig geschrieben wurden, bevor die Verbindung abriss
- RAR-Archive, in denen die vor dem Abschneidepunkt gespeicherten Dateien weiterhin decodiert werden
- RAR-Archive mit einem Wiederherstellungsdatensatz (diese reparieren sich deutlich besser)
- 7z-Archive bis zum letzten vollständigen Kompressionsblock, der überlebt hat
Kann nicht repariert werden
- Jede Datei, deren komprimierte Daten hinter dem Abschneidepunkt lagen — diese Bytes sind nicht auf deiner Festplatte
- Ein solider 7z-Datenstrom jenseits seines letzten intakten Blocks (spätere Dateien in der Kette lassen sich nicht dekomprimieren)
- Archive, die zusätzlich verschlüsselt / passwortgeschützt sind, wenn das Passwort nicht angegeben wird
- Ein Download, der so kurz ist, dass nur ein Fragment des ersten Eintrags ankam
Wenn eine Reparatur fehlschlägt, sagen wir dir warum (fehlende Daten gegenüber beschädigter Struktur), und für eine fehlgeschlagene Reparatur wird dir nie etwas berechnet.