What a ZIP file is
A ZIP file is one file that holds many. The format is described by PKWARE in a public document called APPNOTE.TXT. Every file inside gets its own local header with its name, followed by its data. At the end of the archive sits the central directory, a list of all files with their sizes, dates and where each one starts. Unzip programs read that list first, which is why they can show the contents of a large archive at once.
Each file is compressed on its own, with a method chosen per file. The specification lists more than twenty method numbers. This tool writes the two that every unzip program reads: method 0, stored, where the bytes are kept as they are, and method 8, Deflate. Deflate is defined in RFC 1951. It combines the LZ77 algorithm, which replaces a repeated sequence of bytes with a short reference back to an earlier copy up to 32 KB away, with Huffman coding, which gives common symbols shorter codes than rare ones. Every file also gets a CRC-32 checksum, so an unzip program can tell when data was damaged.
To open a ZIP, look at its contents or take single files out of it, use the Unzip Files tool.
Store, Normal or Maximum
| Setting | What it does | Good for |
|---|---|---|
| Store | Method 0, no compression | Photos, videos, music and other archives; the fastest choice |
| Normal | Deflate at level 6 of 9 | Mixed files; a good balance of speed and size |
| Maximum | Deflate at level 9 of 9 | Text, code, CSV and logs, when every kilobyte counts |
Higher levels search harder for repeats. That costs time, and on most files the gain over Normal is small. All three settings are lossless: unzipping gives back every byte exactly as it was, which the CRC-32 checksum confirms.
Why some files shrink and others do not
Deflate saves space by finding repeats. Text has plenty: the same words, column names and dates come back again and again. Files that are already compressed have had their repeats removed, so there is almost nothing left to find. JPG, PNG, WebP, MP4 and MP3 files, and other ZIP files, belong to this group. Many PDF files compress their pages inside as well. The guide lossy vs lossless compression explains why a photo cannot be squeezed twice.
Worked example, measured with the library this tool uses: a CSV file of 10,001 lines like 1001,2026-10-02,Item 1,7.99 has 297,311 bytes. Deflate at the Normal level stores its data in 63,782 bytes, 21% of the original. Maximum gets to 63,560 bytes, only 222 bytes less. A file of 1,048,576 random bytes, which behaves like an already compressed photo or video, comes out at 1,048,791 bytes with Deflate, 215 bytes larger than it started. RFC 1951 caps that growth at 5 bytes per 32 KB block, so a ZIP of files that cannot shrink is only slightly larger than the files themselves. Each file also adds its name twice and a few dozen bytes of headers.
To make photos or PDF files smaller, the archive is the wrong tool. Use the image compressor or compress PDF, which re-encode the pictures inside, and zip the results if you still want one file.
Folders, names and dates
When you drop a folder or use Choose a folder, every file keeps its path, starting with the folder's own name. Two files with the same path, or names that differ only in upper and lower case, would overwrite each other when unpacked on Windows or a Mac, so the second one gets a number, like photo (2).jpg. Empty folders are not added, because the browser only passes on files.
Names are written in UTF-8. When a name contains any character outside plain ASCII, the tool sets bit 11 of the general purpose flag, which the specification defines as the marker for UTF-8 names. Each file keeps its last modified date, stored in the MS-DOS format that ZIP uses. That format counts years from 1980 and has a precision of 2 seconds.
Limits
- Memory. Files are read in pieces, but the finished archive stays in the browser's memory until you save it. Phones and tablets have far less memory than computers. If the tool fails on a large set of files, pack them in several smaller archives.
- 4 GB and 65,534 files. The classic ZIP fields for sizes and positions are 4 bytes long and the file count 2 bytes; bigger archives need the ZIP64 extension, which the library behind this tool does not write. The tool checks this before it starts.
- No password. The library has no encryption, so the tool offers none. The traditional ZIP password method is called weak by today's standards in the specification itself.
- Folder picking. Choose a folder uses the webkitdirectory feature, which MDN lists as working across current browsers since 2025. On older devices pick the files themselves instead.
ZIP, 7z and RAR
ZIP is the format with a public specification from PKWARE that this tool writes. 7z, the format of 7-Zip, is described by its developer as having an open architecture, with LZMA, LZMA2, PPMd and BZip2 compression, AES-256 encryption and solid compression. RAR 5.0, from RARLAB, also uses AES-256 encryption and can carry an optional recovery record; RARLAB documents its archive structure and points to the UnRAR source code for the details of the compression. This tool reads and writes ZIP only.
How to create a ZIP file
- 1Drop files or folders on the box, tap it to pick files, or use Choose a folder.
- 2Check the list and remove any file you do not want with its × button.
- 3Pick Store, Normal or Maximum, and type a name for the archive.
- 4Press Create ZIP. The archive downloads when it is done, and the result shows how much it saved.
Privacy
Everything happens in your browser. The files are read from your device, packed with the open source fflate library and saved back to your device. Nothing is uploaded, and the file list is gone when you close the page.
Sources
- PKWARE, APPNOTE.TXT, .ZIP File Format Specification, version 6.3.10: compression methods (4.4.5), general purpose bit 11 for UTF-8 names (4.4.4), MS-DOS date and time (4.4.6), the 0xFFFF and 0xFFFFFFFF values that call for ZIP64 (4.4.1.4), traditional encryption (6.0)
- RFC 1951, DEFLATE Compressed Data Format Specification 1.3: LZ77 and Huffman coding, 32 KB distances, worst case growth of 5 bytes per 32 KB block
- fflate: the compression library this tool uses (MIT license)
- MDN, HTMLInputElement: webkitdirectory: folder picking and relative paths
- 7-Zip, 7z Format and RARLAB, RAR 5.0 archive format
Related guides
- Email Attachment Size Limits, and How to Get Under Them
- Hashing vs Encryption vs Encoding: What Each One Does
- Kilobyte vs Kibibyte: Why a 1 TB Drive Shows 931 GB
Frequently asked questions
Are my files uploaded?
No. Your browser reads the files from your device, packs them into the ZIP and saves the archive. Nothing is sent to a server, and the page keeps nothing after you close it.
Which compression level should I pick?
Normal suits almost everything. Maximum spends more time searching for repeats and saves a little more on text, code and spreadsheets in CSV form. Store does not compress at all; it is the fastest and makes sense when the files are photos, videos or other ZIP files that barely shrink anyway.
Why is my ZIP almost as large as the files?
The files are already compressed. JPG and PNG images, MP4 videos, MP3 audio and other archives have had their repeats removed, so Deflate finds little left to save. Many PDF files compress their pages inside too. Text, CSV, HTML, logs and uncompressed images such as BMP shrink the most.
Can I add a password to the ZIP?
No. The library that packs the archive in your browser, fflate, has no encryption, so this tool does not offer one. The old ZIP password method is described in the ZIP specification itself as weak by today's standards. To protect files, use an encryption program that uses AES on your computer.
Does it keep my folders?
Yes. Drop a folder or use Choose a folder, and every file keeps its path below that folder, so the archive unpacks into the same structure. Empty folders are not added, because the browser only hands over files.
How large can the ZIP be?
The archive is built in your browser's memory, so the limit is the free memory of your device, which is much smaller on a phone than on a computer. The tool also stops at 4 GB and 65,534 files, because it writes the classic ZIP format without the ZIP64 extension.
Are the file names kept with accents and other scripts?
Yes. Names are stored in UTF-8 and the archive marks them as UTF-8, as the ZIP specification describes, so unzip programs that follow the specification show names like Übersicht.pdf or 日本.txt as they were.