L'erreur exacte, et ce qu'elle vous dit
Selon l'outil qui ouvre le fichier, la formulation change mais pas le sens. WinRAR affiche :
Unexpected end of archive, et souvent à côté The archive is either in unknown format or damaged.
7-Zip formule le même échec par Unexpected end of data ou, quand le dommage atteint le début du fichier, Cannot open the file as archive. Sous Linux ou macOS, la commande unzip signale unexpected end of file ou le plus précis End-of-central-directory signature not found.
Chacune de ces chaînes décrit une seule et même situation : l'outil s'est retrouvé à court de fichier avant ce que le format prévoyait. Un ZIP ou un RAR a une forme définie, avec des structures précises censées se trouver à des emplacements connus. Quand le fichier est plus court que cette forme ne l'exige, l'outil atteint la fin de façon inattendue et s'arrête. C'est ce que veut dire « unexpected » ici. Ce n'est pas un pépin aléatoire, et ce ne sont généralement pas des données brouillées. C'est un fichier auquel il manque la fin.
Un ZIP garde son index tout à la fin
Pour comprendre pourquoi une fin manquante est si perturbante, il aide de savoir comment un ZIP est agencé. Une archive, ce sont deux choses cousues ensemble. D'abord viennent les entrées : chaque fichier que vous avez ajouté, compressé et écrit les uns à la suite des autres, chacun précédé d'un petit en-tête local qui donne son nom et sa taille. Ensuite, après toutes les entrées, vient le répertoire central : une table qui liste chaque fichier de l'archive et le décalage exact en octets où chacun commence.
Un ZIP stocke d'abord les fichiers et, en dernier, le répertoire qui les liste. Un téléchargement tronqué perd le répertoire, pas les fichiers qui le précèdent.
Le répertoire central est l'index de l'archive. Quand vous double-cliquez sur un ZIP, l'outil saute à la fin, lit ce répertoire et s'en sert pour vous montrer la liste des fichiers. Placer l'index en dernier est délibéré : cela permettait au format ZIP d'origine d'ajouter des fichiers à une archive sans la réécrire en entier. Le hic, c'est que la seule structure dont un outil a besoin en premier est justement celle qui est stockée en dernier, si bien que tout dommage qui commence à la fin du fichier tombe en plein sur l'index. C'est le même schéma qui rend une feuille de calcul fragile, car un fichier .xlsx est en réalité un ZIP avec son propre répertoire à la fin.
Pourquoi un téléchargement coupé perd l'index, pas les fichiers
Un ZIP s'écrit et se transfère du début à la fin. Quand un téléchargement s'enlise, qu'une synchronisation dans le cloud abandonne ou qu'on retire une clé USB en pleine copie, le fichier qui atterrit sur votre disque est ce qui est arrivé avant l'interruption : le début est intact, et la fin est tout simplement absente. Comme le répertoire vit à la fin, il est la première victime de toute troncature. Les entrées du début, les vrais fichiers compressés, sont là, intactes.
C'est toute la raison pour laquelle l'erreur est si récupérable. L'outil ne trouve pas le répertoire, alors il refuse d'ouvrir l'archive de la manière normale et signale une fin inattendue. Mais les fichiers eux-mêmes n'ont jamais été le problème. Une passe de réparation ignore le répertoire absent et parcourt plutôt l'archive depuis le début, lisant chaque en-tête local, prenant les données compressées qui le suivent, et reconstruisant un répertoire neuf à partir de ce qu'elle trouve. L'archive s'ouvre de nouveau, listant chaque entrée qui a physiquement survécu.
Une vérification rapide distingue la troncature de quelque chose de pire : comparez la taille du fichier à celle de l'original si vous la connaissez. Une archive de 240 Mo arrivée à 180 Mo est un cas d'école de troncature, et les 60 Mo manquants ne sont pas endommagés, ils sont ailleurs. C'est aussi pourquoi retélécharger est le premier geste. Les octets manquants existent toujours à la source, et une copie propre bat tout sauvetage d'une copie partielle. Si l'archive venait d'un téléchargement web ou d'une pièce jointe d'e-mail, essayez cette voie avant de réparer. La version propre à Windows de cette même histoire, où l'extracteur intégré de l'Explorateur est plus strict que les outils ci-dessus, est traitée dans « The Compressed (zipped) Folder is invalid ».
Extraction partielle : sortir ce qui a survécu
Quand aucune copie propre n'est disponible, l'extraction partielle est l'objectif réaliste, et c'est souvent un très bon résultat. Comme chaque entrée porte son propre en-tête local et son propre bloc compressé, les fichiers stockés avant la coupure sont indépendants de ceux perdus après elle. Un outil de réparation lit l'archive de façon séquentielle et récupère chaque entrée jusqu'à atteindre le point où les données ont été tronquées. Le résultat n'est pas du tout ou rien ; c'est « 42 fichiers sur 50 sont revenus », les huit manquants étant ceux qui étaient encore en transit quand le transfert s'est arrêté.
Il y a un cas limite qui mérite d'être nommé honnêtement. Le fichier qui se trouve juste à la coupure est souvent à moitié présent : son en-tête et la première partie de ses données compressées sont arrivés, mais pas le reste. Ce fichier peut s'extraire comme une version tronquée de lui-même, ou ne pas se décompresser du tout, selon le format et le stade où la coupure est tombée. Tout ce qui le précède s'extrait proprement. Une attente raisonnable est donc : des fichiers complets jusqu'à la coupure, un fichier peut-être endommagé à la frontière, et rien au-delà. L'option « keep broken files » de WinRAR et les réglages équivalents des autres outils existent précisément pour écrire ce fichier de frontière, pour ce qu'il vaut.
Quand c'est vraiment sans espoir
La réparation structurelle reconstruit l'index autour des données survivantes. Elle ne peut pas fabriquer des données qui ne sont pas là, et quelques situations dépassent ce que n'importe quel outil peut faire. Être direct à leur sujet vous fait gagner du temps :
- Le dommage est en plein flux, pas à la fin. DEFLATE, la compression qu'utilise le ZIP, n'a aucune redondance : c'est un flux continu où chaque partie dépend de ce qui a précédé. Si des octets sont corrompus ou manquants à l'intérieur du bloc compressé d'un fichier plutôt que nettement coupés à la fin, la décompression perd la synchronisation au niveau du dommage et tout ce qui suit ce point dans le fichier est irrécupérable. Vous pourrez peut-être obtenir le début de ce fichier, mais pas son intégralité.
- L'archive est chiffrée. Une archive protégée par mot de passe ou chiffrée en AES peut être réparée structurellement, son répertoire reconstruit, ses entrées de nouveau listées, mais les données compressées restent chiffrées. Sans le mot de passe, les entrées récupérées ne peuvent pas être déchiffrées en fichiers utilisables. La réparation répare le conteneur ; elle ne casse pas le chiffrement, et aucun outil légitime ne prétend le contraire.
- Une partie nécessaire d'un ensemble multivolume est manquante. Une archive scindée (
.z01,.z02, ou.part1.raret compagnie) stocke un unique flux continu réparti sur plusieurs fichiers. Si une partie intermédiaire n'est jamais arrivée, le flux a un vrai trou, et les volumes situés après le trou ne peuvent pas être joints à ceux d'avant. - Le fichier est presque vide. Une archive revenue sous la forme de quelques kilo-octets d'un original de plusieurs mégaoctets, ou qui se lit comme essentiellement des zéros, ne contient aucune entrée réelle à récupérer. C'est un problème de téléchargement ou de récupération, pas un problème de réparation.
En dehors de ces cas, une archive tronquée est l'un des problèmes de corruption les plus faciles à affronter, parce que l'agencement même du format rend les fichiers survivants atteignables un par un.
FAQ
Que signifie « unexpected end of archive » ?
Cela veut dire que l'outil de compression a atteint la fin du fichier avant d'y trouver les parties qu'il s'attendait à y voir. Un ZIP ou un RAR conserve un répertoire de son contenu tout à la fin du fichier, et l'outil lit ce répertoire pour savoir ce qu'il y a dedans. Quand le fichier est plus court qu'il ne devrait, ce répertoire est absent ou coupé en deux, si bien que l'outil signale que l'archive s'est terminée plus tôt que ce que le format prévoit. En clair : le fichier est tronqué. La cause la plus fréquente est un téléchargement ou une copie qui s'est arrêté en cours de route.
Comment corriger « unexpected end of archive » dans WinRAR ?
D'abord, retéléchargez ou recopiez l'archive depuis la source d'origine, car il manque à un fichier tronqué des données qu'aucune réparation locale ne peut inventer. Si vous ne pouvez pas obtenir une copie propre, ouvrez l'archive dans WinRAR et, quand l'erreur apparaît, choisissez de conserver le fichier endommagé plutôt que de le supprimer, puis extrayez avec l'option de conservation des fichiers endommagés activée. WinRAR écrira chaque entrée dont les données ont survécu et ignorera celles qui ont été coupées. Cela sauve les fichiers proches du début de l'archive même si l'ensemble est incomplet.
Puis-je extraire des fichiers d'un ZIP tronqué ?
Souvent oui, pour les fichiers stockés avant la coupure. Un ZIP stocke chaque fichier avec son propre en-tête local juste à côté de ses données compressées, si bien qu'un outil peut parcourir l'archive depuis le début et en extraire les entrées une à une sans avoir besoin du répertoire de la fin. Tout ce qui se trouve jusqu'au point où le fichier a été coupé peut en général être récupéré. Tout ce qui vient après la coupure n'est tout simplement pas dans le fichier, et ne peut donc pas être extrait.
Retélécharger corrige-t-il « unexpected end of archive » ?
En général oui, et cela devrait toujours être la première chose à essayer. L'erreur est un symptôme de troncature, et il manque à un téléchargement tronqué des octets qui n'existent qu'à la source. Un nouveau téléchargement sur une connexion stable produit fréquemment une archive complète et fonctionnelle dès la première nouvelle tentative. Retélécharger ne coûte rien et répare le fichier entier, tandis que la réparation ne sauve que la partie arrivée ; commencez donc par la copie propre.
Pourquoi 7-Zip affiche-t-il « unexpected end of data » ?
C'est la formulation de 7-Zip pour le même problème de troncature que WinRAR appelle « unexpected end of archive ». Le flux compressé s'arrête avant le point promis par les champs de longueur du format, si bien que 7-Zip cesse de décompresser et signale que les données se sont terminées trop tôt. Vous verrez parfois aussi « Cannot open the file as archive » quand le dommage atteint l'en-tête de l'archive. Les deux désignent un fichier incomplet plutôt que brouillé.
À lire aussi : pourquoi un fichier Excel corrompu est en réalité un ZIP cassé, et la formulation Windows de ce même problème dans « The Compressed (zipped) Folder is invalid ».