Your country

Tools that support it use your country for local currency, number formats, units and paper size. Your choice is saved only in this browser.

Type a name or a two-letter code. Use the up and down arrow keys to move through the countries, Enter to choose one and Escape to close.

ZIP Archive Repair (Truncated, Damaged and Broken Downloads)

Rebuild a damaged ZIP archive and keep every file that survived, on your own device.

Data Recovery No upload Works offline Free preview, no sign-upIncluded in your pass Ultimate tool Ultimate pass: ₹1,199 for 30 days

Free preview.

  • Free preview: the full list of files in the archive with the condition of each one (intact, partly recovered or lost) and the whole integrity report.
  • Locked until you unlock it: download and saving to your device.
  • Unlock: Ultimate pass, ₹1,199 for 30 days, a one-time payment that never renews.

Ways to unlock shows how to get the full result.

See passes (opens in a new tab)

Printing this result is locked in the free preview.

Before you start

  • Work on a copy. The archive is only read, never changed, but keep the original until the new one has been opened.
  • Download it again if you can. A complete download is always better than a repair: missing bytes cannot be recreated.
  • Healthy archives open in the ZIP Extractor; this page is for archives that will not open.
  • Nothing is uploaded. The archive is read on your device, a few megabytes at a time, and only files you own or may examine should be opened here.

Choose the damaged archive

Next steps

About the ZIP Archive Repair (Truncated, Damaged and Broken Downloads)

A ZIP archive keeps its table of contents — the central directory — at its very end, and most programs read nothing else. So when a download stops early, a copy is cut short or a disk loses a block, the archive will not open at all, even though nearly everything in it is still there: Windows says the compressed folder is invalid, 7-Zip reports an unexpected end of archive, and unzip cannot find the end-of-central-directory signature.

This page reads the archive the other way, from the front. Every file inside a ZIP starts with a local header that repeats its name, its compression method and — usually — its sizes and checksum, so the page finds each file by its header, decodes it to the end, and compares the result with its CRC-32 checksum. Each file is listed as intact, partly recovered or lost, and the intact ones go into a new, clean archive with their original compressed bytes copied exactly — nothing is recompressed — or straight into a folder. It works for the formats built on ZIP too: JAR, EPUB, APK, ODT and others. Nothing is uploaded: the archive is read on your device, a few megabytes at a time.

How to use it

  1. Work on a copy of the damaged archive. If it came from a download, check whether the site can send it again first: a complete download is always better than a repair.
  2. Choose the archive. For an archive split into parts, choose all of them together (name.z01, name.z02 … name.zip, or name.zip.001, name.zip.002 …).
  3. Press Check the archive. The page looks for every file header in it, decodes each file and checks it against its checksum; a large archive takes a while, and the page shows how far it has got.
  4. Read the list: each file’s condition, size and, for anything not intact, what is wrong with it. Filter it by condition or search it by name.
  5. Choose whether partly recovered files should go in as well. They are marked “(partial)” in their names, because only the part before the damage is in them.
  6. Without a pass the list and the report are a free preview; with an Ultimate pass the files are saved — as a new ZIP, or into a folder on another drive (Chrome or Edge on a computer).

Examples

A download that stopped at 1.1 GB of 1.4 GB
Input
holiday-photos.zip · 1.1 GB · Windows says the compressed folder is invalid
Result
2,412 files intact · 1 partly recovered: the photo the download stopped in

The archive’s directory was in the part that never arrived, so no ordinary program could open it. Every file before the cut is complete, and the new archive holds exactly those. The files after the cut never reached the disk at all, so nothing can list them.

An archive written as a stream, cut short
Input
backup.zip · made by a backup tool that writes sizes after each file
Result
Each file found by decoding it to its end · sizes and checksums read from the data descriptors that follow

Programs that stream an archive (general purpose bit 3) write each file’s sizes after its data, not in its header. Without the directory, decoding is the only way to find where a file ends — and the page does exactly that.

A damaged block in the middle of an archive
Input
project.zip from an old USB stick · 7-Zip reports a CRC error in one file
Result
86 files intact · 1 partly recovered (decoded up to the damaged block) · the directory itself is fine

A bad block spoils only the files it falls in. The rest decode and check out, and a partly recovered text or log file is often still useful as far as it goes.

An e-book that will not open in a reader
Input
novel.epub · the reader says the file is damaged
Result
All 41 files intact; the archive’s end record was damaged · rebuilt with its “mimetype” file first and uncompressed

EPUB and OpenDocument files are ZIP archives with one rule extra: their first member must be an uncompressed file called mimetype. The new archive keeps that rule.

Common uses

  • Downloads that stopped part way, from a browser, a download manager or a messaging app.
  • Archives copied badly from a USB stick, a memory card or a network share.
  • Backups and exports that will not open, written by tools that stream their archives.
  • E-books (EPUB), Java archives (JAR) and OpenDocument files that their programs call damaged.
  • Archives found by a deep scan of a disk image and marked partly damaged.

Why a cut-off ZIP will not open

PKWARE’s specification lays an archive out as a series of files, each a local file header followed by its data, and at the end a central directory listing them all, closed by an end-of-central-directory record (PKWARE APPNOTE). Readers start from that last record, because it says where everything is. Lose the end of the file and they have nothing to start from — even though every file before the cut is still whole.

The local headers are the way back in. Each one starts with the signature 50 4B 03 04 (“PK” and two bytes), and repeats the file’s name, method and flags. That is what this page looks for, through the whole archive.

How each file is found and checked

  • Its header gives the name, the method (Stored, Deflate or Deflate64 are decoded here) and, normally, its sizes and its CRC-32 checksum. The central directory, where it survived, supplies what a header left out.
  • Its end: from its sizes when they are known. When a program streamed the archive and put the sizes in a data descriptor after the data, the page decodes the file to the end of its last compressed block — that is where it ends — and reads the checksum from the descriptor that follows.
  • Its check: the decoded file must match its CRC-32 and its stated size. Only then is it intact.
  • What is not the archive’s: a ZIP stored inside the archive has headers of its own; they are recognised as part of their file and left inside it, and an older copy of a file that an update left behind is listed apart and not selected.

What intact, partly recovered and lost mean

  • Intact: decoded to its end and matched its checksum — exactly the file that was put in. It goes into the new archive with its compressed bytes copied as they are.
  • Partly recovered: the file was cut off or damaged part way. Everything before the damage is kept, and it goes into the new archive only if you choose, with “(partial)” in its name. A partial text, log or CSV file is often useful; a partial photo shows its top part; a partial program or document of most other kinds may not open.
  • Lost: nothing of its data is in the file, or where its data lies cannot be found.
  • Encrypted and Not checked: a password-protected file, or one compressed with a method this page does not decode (such as BZIP2 or LZMA), or one that decoded to its end but whose checksum was in the part of the archive that never arrived. They are copied into the new archive exactly as they are; one that decoded is given the checksum of what decoded, so other programs open it.

Split archives

An archive split into parts by WinZip or Info-ZIP (name.z01, name.z02 … and finally name.zip) numbers its parts as disks, and its directory, in the last part, gives each file’s place within its own part. Choose all the parts together: the page joins them in order and reads them as one archive. Parts made by 7-Zip or a file splitter (name.zip.001, name.zip.002 …) are plain pieces of one archive and are joined the same way. A missing part takes the files inside it with it, but every file in the other parts can still be found.

What the repair is measured against

The page’s automated tests build archives in code and break them the ways downloads, copies and disks break them: cut short in the middle of a file, written as a stream with the sizes in data descriptors and then cut short, with a damaged block inside one file, with the signature of one file’s header overwritten, behind a self-extracting program, split into two parts, holding another ZIP inside, encrypted, compressed with a method that is not decoded, and made of nothing but zero bytes. Every intact file must come back byte for byte; every partly recovered one must be exactly the start of the original; the rebuilt archive must open in another program’s reader and pass this page’s own check with nothing wrong.

No success rate is published for other people’s archives: what comes back depends only on how much of the archive reached the disk.

Limitations

  • Only ZIP archives and the formats built on ZIP are read. RAR and 7z archives, and TAR and GZIP files, are not repaired here.
  • Missing bytes cannot be recreated: a file whose data was not in the download, or was overwritten, stays lost or partial.
  • Files compressed with Deflate64 are decoded; files compressed with BZIP2, LZMA, XZ, Zstandard or PPMd are copied into the new archive unchecked, and cannot be saved into a folder from here.
  • Encrypted files are never decrypted or cracked. They are copied as they are and open in the new archive with their own password.
  • A partly recovered file holds only what was before the damage; after damage inside a compressed file, its last part may hold some bytes that are not the original’s.
  • App and add-on packages (APK, XPI) are signed over the whole file, so a rebuilt package has to be signed again before it installs.
  • Saving into a folder works in Chrome and Edge on a computer; other browsers download the new archive instead. A web page cannot set a file’s date: files saved into a folder carry the date they are written, while the new ZIP keeps each file’s own date.

Privacy

The archive is read by your browser on your device, a few megabytes at a time; nothing from it is sent anywhere, and the page works offline once it has loaded.

Frequently asked questions

What do I get without a pass?

Without a pass, ZIP Archive Repair (Truncated, Damaged and Broken Downloads) shows the full list of files in the archive with the condition of each one (intact, partly recovered or lost) and the whole integrity report. Until you unlock it, the result can’t be downloaded or saved to your device. An Ultimate pass, a one-time payment that never renews, unlocks the full result. The pricing page lists the passes and their prices.

Why do Windows and 7-Zip refuse an archive that is mostly fine?

Because they start from the archive’s directory, which is at its very end. A download or copy that stopped early never received that end, so they find nothing to start from. The files before the cut are untouched, and each one can be found by its own header.

Is anything recompressed or changed?

No. Intact files go into the new archive with their compressed bytes copied exactly as they were; only new headers and a new directory are written around them. Files saved into a folder are the decoded files themselves, checked against their checksums.

What happens to a file that is only partly there?

It is listed as partly recovered with how much of it decoded, and it is left out of what is saved unless you choose to include it. Then it goes in with “(partial)” in its name, holding everything up to the damage.

Can it open a password-protected archive?

It never tries to guess or crack a password. Encrypted files are copied into the new archive exactly as they are, so they open there with their own password in any program that supports their encryption.

How large an archive can it check?

Archives of many gigabytes: the file is read a few megabytes at a time and each member is decoded as a stream, so memory stays flat. Decoding every file takes a while for a large archive, and the page shows how far it has got.

My archive opens fine. Do I need this page?

No. When every file is intact and the archive’s own directory is sound, the page says so; open it with the ZIP Extractor, which reads healthy archives, including RAR and 7z.

Is anything uploaded?

No. The archive never leaves your device: it is read and checked in your browser, and the page works without a connection once it has loaded.

Quick answers and tool search

Type to search tools or to get a quick answer, for example 18% of 2500. Use the up and down arrow keys to move through the results, Enter to choose, and Escape to close.