L'archivio non si apre dopo un download dal cloud interrotto

Uno ZIP o RAR di Google Drive o Dropbox che non si apre non è quasi mai stravolto — di solito è semplicemente troppo corto, perché il download si è fermato prima che arrivassero gli ultimi byte. Tutto ciò che è stato scritto prima dell'interruzione di solito resta leggibile, e recuperarlo non richiede di consegnare l'archivio a un server.

Il tuo file non lascia mai il tuo dispositivo — la riparazione avviene nel browser. 0 byte caricati.

Your data is the big block — usually intact. What breaks is the small index. Repair rebuilds it.

Drop a file here or browseTap to choose a file

ZIP · Office · PDF · video · JPG · PNG · RAR/7z · SQLite — repaired right here in your browser. Nothing is uploaded

0 bytes uploadedFree: 3 repairs/day — up to 500 MB video, 100 MB docs & archives, 50 MB photos. Free download. Single repair €5.90. No account required.

Ripara ora

  1. Trascina il file
  2. La riparazione avviene in locale
  3. Scarica il risultato

L'opzione «Scarica cartella» di Google Drive e «Scarica come .zip» di Dropbox falliscono allo stesso modo quando la connessione cade: ti ritrovi con uno ZIP che nessuno strumento apre. La ragione è quasi sempre delle più banali — il file è troncato, gli manca l'indice della coda — e non che il suo contenuto sia stravolto. Trascina il file qui sopra e lo strumento legge la sua struttura reale nel browser, individua le voci scritte per intero prima che il trasferimento si fermasse ed estrae quelle, invece di rifiutare l'intero archivio. Non viene caricato nulla.

Troncamento contro bit-rot: due guasti diversi, un'unica etichetta

Due problemi completamente diversi ricevono lo stesso nome di «archivio danneggiato», e la soluzione dipende da quale dei due hai. Il troncamento significa che il file è corto: il download si è fermato prima che arrivasse l'ultimo byte, quindi al file manca la coda. Il bit-rot — qui, un errore nei byte introdotto durante il transito — significa che il file ha la lunghezza corretta ma alcuni byte sono sbagliati: un blocco invertito o azzerato in qualche punto intermedio. Distinguerli richiede dieci secondi e decide tutto su ciò che puoi recuperare.

Controlla prima la dimensione. Sia Google Drive sia Dropbox mostrano il numero reale di byte nel pannello dei dettagli del file; confrontalo con la copia sul tuo disco. Se la tua è più piccola, è troncata — punto. Uno ZIP troncato ha perso il suo record End Of Central Directory — la firma PK\x05\x06 che risiede negli ultimi 22 byte abbondanti del file — quindi un estrattore che si posiziona alla fine per leggere l'indice trova spazzatura o nulla. Ecco perché unzip dice End-of-central-directory signature not found o cannot find zipfile directory, 7-Zip e WinRAR dicono «Unexpected end of archive», e l'estrattore integrato di Windows dice «The Compressed (zipped) Folder is invalid.»

Se la dimensione coincide ma l'estrazione continua a fallire, hai bit-rot. L'indice è presente, quindi lo strumento entra nell'archivio e fallisce file per file: 7-Zip segnala «Data error» o «CRC failed», e unzip -t stampa bad CRC a fronte delle voci specifiche. Ogni voce ZIP conserva un CRC-32 dei suoi dati non compressi sia nella propria intestazione locale sia nella directory centrale; quando i byte decompressi non danno quel valore, lo strumento sa che quel file è danneggiato — ma gli altri di solito non lo sono.

Perché un download dal cloud danneggia un archivio, per cominciare

I trasferimenti interrotti troncano gli archivi più di ogni altra cosa, e l'archiviazione nel cloud aggiunge le sue sfumature. Quando usi «Scarica cartella» di Drive o «Scarica come .zip» di Dropbox, il server costruisce lo ZIP al volo e te lo invia in streaming. Poiché sta comprimendo mentre invia, non conosce in anticipo la dimensione né il CRC di ciascun file, quindi attiva il bit 3 di uso generale in ogni voce e scrive il CRC e le dimensioni dopo i dati compressi, in un descrittore di dati (PK\x07\x08). Se la connessione cade a metà del flusso, ti resta un prefisso pulito di uno ZIP valido ma senza alcuna directory centrale — troncamento da manuale.

Le cartelle grandi peggiorano le cose perché superano la soglia di ZIP64: più di 65.535 file o 4 GiB di dati. Un archivio ZIP64 mantiene un record EOCD ZIP64 PK\x06\x06 e un localizzatore PK\x06\x07 proprio alla fine — ancora più metadati di coda da perdere quando il trasferimento si ferma anzitempo.

Due trappole tipiche del cloud si spacciano per corruzione. Prima: Google Drive si rifiuta di eseguire la scansione antivirus dei file grandi e serve una pagina HTML intermedia al posto dei byte; se hai ottenuto il link con wget, curl o uno script, il tuo «.zip» può in realtà iniziare con <!DOCTYPE html> invece che con PK\x03\x04 — è una pagina web, non un archivio compresso. Seconda: i gestori di download a segmenti che prelevano un file in intervalli di byte paralleli possono lasciare un vuoto o un blocco duplicato quando un intervallo fallisce silenziosamente, producendo un file di lunghezza completa con il centro danneggiato: bit-rot, non troncamento. Aprire il file in un visualizzatore esadecimale e controllare se i primi quattro byte sono 50 4B 03 04 (PK\x03\x04) ti dice all'istante se hai davvero uno ZIP.

Cosa estrae davvero il recupero

Trascina il file qui sopra e lo strumento ignora l'indice mancante o illeggibile e scorre l'archivio in avanti dall'inizio, catturando ogni intestazione di file locale PK\x03\x04 e decomprimendo il flusso deflate che la segue finché i byte reggono. In un archivio troncato, ogni voce scritta per intero prima dell'interruzione torna intatta; solo l'unico file rimasto a cavallo del punto di troncamento torna parziale o va perso. Nel caso del bit-rot, le voci il cui CRC-32 quadra ancora si estraggono normalmente, e lo strumento segnala la voce specifica il cui hash fallisce invece di condannare l'intero archivio. Questo è puro TypeScript in esecuzione nella tua scheda — senza binario unzip, senza trasmettere nulla.

RAR e 7z seguono lo stesso principio su strutture diverse. Un RAR (firma Rar!\x1a\x07\x00 nella v4, Rar!\x1a\x07\x01\x00 nella v5) memorizza i file in blocchi indipendenti, quindi quelli precedenti al danno si decodificano ancora, e un RAR creato con un record di ripristino si ripara molto meglio perché quel record esiste proprio per ricostruire i blocchi mancanti. Un .7z (firma 7z\xBC\xAF\x27\x1C) è il caso fragile: tiene il suo database di intestazioni nella coda e di solito usa compressione solida che concatena molti file in un unico flusso, quindi una coda persa o un errore di byte a metà del flusso può rompere la decompressione di tutto ciò che viene dopo l'ultimo blocco intatto. Lo strumento recupera ciò che i blocchi sopravvissuti permettono e lo dice chiaramente quando un flusso solido non può essere continuato.

Il limite onesto: i byte mancanti restano mancanti

Nulla può recuperare byte che non sono mai arrivati sul tuo disco. Se il download si è fermato al 70%, l'ultimo 30% dei dati compressi semplicemente non esiste in locale, e nessuno strumento — né questo, né la funzione Repair di WinRAR stessa, né una suite di recupero a pagamento — può inventarlo. La vera soluzione per il troncamento è riscaricare da Drive o Dropbox, evitando se possibile una cartella compressa sul server: scarica direttamente il file originale, oppure la cartella in lotti più piccoli, così che il trasferimento abbia più probabilità di concludersi.

Il bit-rot dentro un flusso compresso è altrettanto implacabile a livello del singolo file danneggiato. Deflate è un flusso con stato — un solo bit invertito fa deragliare la decodifica Huffman/LZ77 da quel punto in poi — quindi la voce colpita di solito torna troncata sull'errore, anche se il suo CRC-32 ti ha detto esattamente quale file ha incassato il colpo. Gli archivi cifrati (ZIP AES-256, protezione con password di RAR o 7z) non si possono scansionare senza la password, perché le voci sono testo cifrato. Ciò che il recupero evita in modo affidabile è che un archivio arrivato a metà diventi una perdita totale: se nove file su dieci sono arrivati, non c'è motivo di perdere i nove inseguendo il decimo. E poiché tutto viene eseguito in locale, un archivio con registri finanziari, codice sorgente o documenti personali non viene mai copiato su un server sconosciuto solo per guardarci dentro — apri la scheda Rete e conferma che non esce nemmeno un byte.

Cosa può e cosa non può riparare

Può riparare

  • Uno ZIP troncato da un download da Drive/Dropbox interrotto — le voci scritte prima dell'interruzione si recuperano scorrendo le intestazioni locali PK\x03\x04
  • Bit-rot in una voce: i file il cui CRC-32 si verifica ancora si estraggono normalmente, e la voce danneggiata viene segnalata invece di far cadere l'intero archivio
  • Cartelle compresse sul server che inviano descrittori di dati in streaming (PK\x07\x08) e hanno perso la directory centrale per una connessione caduta
  • Download di cartelle ZIP64 (più di 65.535 file o 4 GiB) a cui manca il record PK\x06\x06 e il localizzatore PK\x06\x07 della coda
  • Archivi RAR in cui i blocchi precedenti al danno si decodificano ancora — molto meglio con un record di ripristino
  • Archivi 7z fino all'ultimo blocco di compressione (solida) completo sopravvissuto

Non può riparare

  • Qualsiasi file i cui dati compressi si trovavano dopo il punto di troncamento — quei byte non sono mai arrivati sul tuo disco (meglio riscaricare)
  • Un «.zip» che in realtà è la pagina HTML di scansione antivirus di Google Drive — è una pagina web, non un archivio compresso
  • La singola voce colpita da un errore di byte a metà del flusso, oltre il punto in cui si è rotto il suo flusso deflate
  • Un flusso solido 7z oltre il suo ultimo blocco intatto (i file successivi della catena non si possono decomprimere)
  • Archivi cifrati / protetti con password senza la password (le voci sono testo cifrato)

Se una riparazione fallisce, ti diciamo perché (dati mancanti rispetto a struttura danneggiata), e non ti viene mai addebitato nulla per una riparazione fallita.

Domande frequenti

Come faccio a sapere se l'archivio è troncato o danneggiato durante il trasferimento?

Confronta le dimensioni. Drive e Dropbox mostrano il numero reale di byte del file nel loro pannello dei dettagli — se la tua copia scaricata è più piccola, è troncata e vedrai «Unexpected end of archive» o End-of-central-directory signature not found. Se la dimensione coincide ma l'estrazione fallisce con «Data error» o «CRC failed», alcuni byte si sono danneggiati durante il transito (bit-rot) e l'indice è ancora presente. Il recupero gestisce entrambi i casi, ma i dati successivi a un'interruzione da troncamento sono persi per sempre.

Il mio download da Google Drive si apre come una pagina web invece che come uno ZIP, perché?

Per i file grandi che non riesce a sottoporre a scansione antivirus, Drive serve una pagina HTML intermedia del tipo «impossibile analizzare questo file». Se hai scaricato con uno script, wget o curl, è possibile che tu abbia salvato quella pagina con un nome .zip — inizia con <!DOCTYPE html>, non con PK\x03\x04. Non è affatto un archivio danneggiato; riscaricalo premendo il pulsante «Scarica comunque» in un browser.

Il download si è interrotto. Posso comunque estrarre alcuni dei file?

Sì — è proprio questo lo scopo del recupero. In uno ZIP, lo strumento scorre le intestazioni di file locali (PK\x03\x04) dall'inizio ed estrae ogni voce scritta per intero prima che cadesse la connessione, così che un archivio scaricato a metà restituisca comunque i suoi file intatti invece di fallire per intero. Solo il file rimasto a cavallo dell'interruzione, e tutto ciò che viene dopo, è irrecuperabile.

Il mio file ha la dimensione completa ma 7-Zip continua a dire «CRC failed». E adesso?

È bit-rot, non troncamento: l'indice dell'archivio è intatto, quindi lo strumento arriva alle voci e ne trova una il cui CRC-32 memorizzato non coincide con i suoi byte decompressi. Tutte le altre voci di solito si verificano e si estraggono senza problemi. La voce danneggiata non si può ricostruire del tutto — un bit invertito fa deragliare il flusso deflate da quel punto in poi — quindi perdi un file, non l'intero archivio.

L'archivio viene caricato per essere riparato?

No. Il file viene letto dal tuo disco ed elaborato nella scheda del tuo browser; non viene trasmesso nulla. Puoi aprire la scheda Rete e confermare che non esce nemmeno un byte del file dal tuo computer — utile quando contiene registri finanziari, codice sorgente o documenti personali che preferiresti non copiare sul server di uno sconosciuto.

Correlati: "Unexpected end of archive" · Ripara un archivio ZIP · "Compressed folder is invalid" · Verifica la promessa di zero upload