Skip to main content
PulsarKit

Create a ZIP file

Pack files or a whole folder into one archive, keeping the folder structure and skipping pointless recompression of photos and video.

Drop your files here

· up to 300 MB

More settings

How to Create ZIP

  1. 1

    Drop files or a folder

    Up to two thousand files. Dropping a folder keeps its structure; the paths you see are the paths inside the archive.

  2. 2

    Name the archive and pick a compression level

    Smart compression is the default: real compression for text and documents, storage for formats that are already compressed.

  3. 3

    Create the ZIP and download

    One archive comes back, with the original modification date preserved on every entry.

Why smart compression is the default

Deflate, the algorithm inside every ZIP file, looks for repetition. JPEG, PNG, MP4, MP3 and PDF have already had their repetition squeezed out by their own codecs, so running deflate over them again typically saves well under one percent while costing real seconds of processor time on a large set. Smart mode therefore stores those formats as-is and compresses everything else at level six, which is where the curve of effort against benefit flattens for text, CSV, JSON and Office documents. If you want a uniform rule instead, levels one, six and nine apply to every file without exception, and store mode packs without compressing at all, which is useful when the archive is only a container.

Folder structure and name collisions

Dropping a folder preserves the relative paths, so unzipping recreates the same tree rather than dumping two hundred files into one directory. Flattening is the alternative, and it creates a question the tool has to answer out loud: two files called photo.jpg from different folders cannot both be photo.jpg. Either the second becomes photo-2.jpg, or it is skipped and counted. Both are offered, and neither happens silently. Hidden files, meaning anything with a path segment starting with a dot, are excluded by default because .DS_Store and .git directories are rarely what anyone meant to send.

There is no password option, on purpose

The classic ZIP password uses a stream cipher from 1990 that falls to a known-plaintext attack in seconds on an ordinary laptop; the stronger AES variant is not something the compression library used here can write. Offering the weak one under the word "password" would imply a protection that does not exist, which is worse than offering nothing. If you need to read an encrypted archive rather than create one, the extractor handles both ZipCrypto and AES. If you need to protect what you are sending, the Protect a file tool writes AES-256 archives with a password, which is the strong variant done properly.

Nothing is uploaded to build the archive

Every file is read and compressed inside this browser tab, and the ZIP is assembled locally. No server sees the contents, no temporary copy is stored, and there is nothing to expire or delete afterwards.

Frequently asked questions

Why do my JPEGs and MP4s not get smaller?

They are already compressed by their own codecs, so deflate finds almost nothing left to remove. Smart mode stores them without recompressing, which produces an archive of the same size in a fraction of the time.

How do I keep my folder structure?

Drop the folder rather than its contents and leave the structure setting on preserve. The relative paths are written into the archive, so unzipping recreates the same tree.

Can I set a password?

Not here, deliberately: the legacy ZIP password is broken in seconds, and offering it would suggest protection that is not real. For a password that holds, use the Protect a file tool, which writes AES-256 encrypted archives.

What are the size limits?

Up to two thousand files and three gigabytes in total. Beyond either you are told which limit was hit and by how much, rather than the page failing without explanation.

What happens to files with the same name?

Nothing, if you keep the folder structure; different folders keep them apart. When flattening, the second file is either renamed with a -2 suffix or skipped and counted, whichever you choose.

Why is the archive not byte-identical when I build it twice?

Entries carry each file's modification time, and compression is not guaranteed to be bit-identical between runs. The contents unpack identically, which is what matters; comparing archives byte for byte is not a meaningful check.

Are hidden files included?

Not by default. Anything with a path segment beginning with a dot, such as .DS_Store or a .git folder, is left out unless you turn the option on.

Related tools