archive-mode (arc-mode.el) is the Emacs builtin mode for viewing and editing the contents of archive files like .arc, .zip, .lzh, .zoo, etc. See arc for the basics.

Note that .tar files are handled by TarMode, which is slightly different.

New archive types can be added to archive-mode without too much trouble. The builtin modes usually look at the file directly to get the contents, but run an external program to make changes. Have a look at for instance

Note about file extraction to the file system:

  • archive-mode cannot extract a file in an archive to the file system (with the timestamp in the archive), only to a buffer for viewing (and when you save the buffer to the file system you obviously do not get the correct timestamp from the archive).

Question to the topic above: Does anybody know of an arc-mode replacement, which enables extraction to the file system?

Note about archive-mode for emacs within the cygwin environment:

  • Diagnostics: Only an empty directory is shown by emacs within cygwin for a non-empty zip-file.
  • Cause: The zip file has been stored in a MS-DOS path that was mounted under cygwin in text-mode. The zip-file contains carry return-linefeed sequences that are truncated to linefeed only in the cygwin text file system. This invalidates the offsets in the central directory at the end of the zip-file. Thus the directory entries are not found.
  • Fix: Mount the file system in binary mode. See manual page for mount under cygwin.