Archive files are particularly useful in that they store file system data and metadata within the contents of a particular file, and thus can be stored on systems or sent over channels that do not support the file system in question, only file contents – examples include sending a directory structure over email, files with names unsupported on the target file system due to length or characters, and retaining files' date and time information.[4]
A single archive file may contain multiple member files; this can speed file transfers and other operations with processing overheads for each file,[5][6] in addition to gains due to compression.
Beyond archival purposes, archive files are frequently used for packaging software for distribution, as software contents are often naturally spread across several files; the archive is then known as a package. While the archival file format is the same, there are additional conventions about contents, such as requiring a manifest file, and the resulting format is known as a package format.[7] Examples include deb for Debian, JAR for Java, APK for Android, and self-extractingWindows Installerexecutables.
Anarchive format is the file format of an archive file. Some formats are well-defined by their authors and have become conventions supported by multiple vendors and communities.[9]
Multi-function formats can store metadata, concatenate, compress, encrypt, create error detection and recovery information, and package the archive into self-extracting and self-expanding files.
Software packaging formats are used to create software packages that may be self-installing files.
Disk image formats are used to create disk images of mass storage volumes.
Filename extensions used to distinguish different types of archives include zip, rar, 7z, and tar, the first of which is the most widely implemented.[10]
Java also introduced a whole family of archive extensions such as jar and war (j is for Java and w is for web). They are used to exchange entire byte-code deployment. Sometimes they are also used to exchange source code and other text, HTML and XML files. By default they are all compressed.[11]
Archive files that do not natively support recovery records can use separate parchive (PAR) files that allows for additional error correction and recovery of missing files in a multi-file archive.[13]