File Joiner

Join numbered .part001, .part002 chunks back into the original file. Parts are sorted by number and checked for gaps, so a missing part is named instead of producing a broken file.

runs locally on your browser. Your data never leaves your device.

Drag & drop the part files here

Files named like movie.mp4.part001, movie.mp4.part002, and so on. The order you add them in does not matter. Add the .manifest.txt too, if you have it, to check for a missing last part.

Common Use Cases

Rebuild a large video or disk image that a friend sent as numbered .part files to get around an email or chat size limit
Reassemble a big backup that was split to fit on a FAT32 drive, and learn straight away if one chunk never made it across
Put together a download that was served as several .partNNN pieces, without opening a terminal or typing cat or copy /b
Confirm that a set of split pieces is complete and in order before deleting the original or relying on the copy

About File Joiner

File Joiner puts a split file back together. Drop in the numbered pieces, such as movie.mp4.part001, movie.mp4.part002, and movie.mp4.part003, and the tool checks that every piece is present, joins them in the right order, and gives you the original file as one download. It is the reverse of the File Splitter on this site, and it reads the same naming scheme: the original file name, then .part, then a number.

The order of the parts matters completely, and the tool never trusts the order you added them in. When you select several files in a file picker or drag them out of a folder, browsers and operating systems do not promise that they arrive in the order you see on screen. Sorting by name as plain text is also a trap, because part10 would land before part2. File Joiner reads the number at the end of each name and sorts by its numeric value, so part2 comes before part10 and part002 before part010, whatever the order of the drop and however many digits the numbers were written with.

Before anything can be downloaded, the tool checks that the numbers are contiguous. If you have part001 and part003 but part002 is missing, it shows a red row between them that names the missing part, explains the problem above the list, and keeps the join button disabled. A file joined with a hole in the middle would be shorter than the original, and for a video, an archive, or a disk image it would be silently corrupt, so the tool refuses instead of guessing. It also catches a set that starts at part002 because part001 is absent, and the same number added twice, such as two copies of part003 from different folders.

Names alone have one blind spot. If you have parts 001, 002, and 003, there is no way to tell from the file names whether the file was split into three parts or four. That is why the tool accepts the .manifest.txt file the File Splitter writes next to its parts. Drop it in with the parts and the tool knows the exact number of parts and the exact size of the original in bytes. A missing last part then shows up as a missing row, and a part that was cut short by an interrupted copy shows up as a size mismatch, with the joined file still blocked until the set is complete.

The joining itself is fast and light. The tool builds the result with the browser's Blob constructor from the part files, which references the files on your disk instead of copying them into memory. Building the joined file is instant at any size, and the only real wait is your browser writing it to disk, so there is no size limit beyond what your disk can store. Nothing is uploaded at any point. The parts are read from your disk only when your browser writes the finished download, and no request carries a file name or any of its bytes.

If you would rather use the command line, the commands in the File Splitter manifest do the same thing: cat over the part files on macOS and Linux, or copy /b in Command Prompt on Windows. File Joiner is for the times when you are on a locked-down or shared machine, when you do not want to type a command, or when you want the missing-part check done for you.

Frequently Asked Questions

Is my file uploaded anywhere when I join the parts?
No. The part files are read from your disk by your browser and joined inside the tab. The tool builds the result from references to the files you chose, so the data is not even copied into the page's memory first. No request containing a part, its name, or its contents is ever sent. You can watch the Network tab in your browser's developer tools while you use the tool and see that nothing leaves the page.
What happens if one of the parts is missing?
The tool tells you which one and refuses to produce a file. A gap between two parts you added, for example part002 absent between part001 and part003, appears as a red row in the list and in a message above it. A missing part001 is reported the same way. The Join button stays disabled until the numbers run without a break, because a file joined with a hole in it is corrupt even though it would still download.
Does the order I drop the files in matter?
No. Browsers do not guarantee that dropped or selected files arrive in the order they appear on screen, so the tool ignores the arrival order completely. It reads the number after .part in each name and sorts by that value, which also means part2 correctly comes before part10 even though plain alphabetical sorting would put it after. The list shows the order the parts will be joined in.
How can it tell if the last part is missing?
From file names alone it cannot, because parts 001 to 003 look complete whether the original had three parts or four. Add the .manifest.txt that the File Splitter wrote and the tool reads the part count and the exact size in bytes from it. A missing last part is then flagged by name, and a set whose total size differs from the original is blocked with a message. Without a manifest, compare the joined size with the size of the original.
Which file names does it accept?
Names that end in .part and a number, such as backup.tar.gz.part001, which is what the File Splitter on this site produces. The digits can be any length, so part1 and part0001 work as well as part001. Files with other numbering styles, such as 7-Zip's .001 or the .z01 of a split ZIP, are not recognized and are listed as not used, with the reason. A ZIP of parts is not unpacked here, so extract it with the File Extractor first.
Why does my joined file lose the dot at the start of its name?
Browsers remove a leading dot from the name of any downloaded file, so a joined .env would be saved as env. This is a browser rule that no page can override. When the original name starts with a dot, the tool shows a note about it. Rename the file back after downloading it, and check its size against the original or the manifest to confirm the join.