A <zipfileset> is a special form of a <fileset> which can behave in 2 different ways:

<zipfileset> supports all attributes of <fileset> in addition to those listed below. Note that zip archives in general don't contain entries with leading slashes so you shouldn't use includes/excludes patterns that start with slashes either.

Since Ant 1.6, a zipfileset can be defined with the id attribute and referred to with the refid attribute.


Attribute Description Required
prefix all files in the fileset are prefixed with that path in the archive. No
fullpath the file described by the fileset is placed at that exact location in the archive. No
src may be used in place of the dir attribute to specify a zip file whose contents will be extracted and included in the archive. No
filemode A 3 digit octal string, specify the user, group and other modes in the standard Unix fashion. Only applies to plain files. Since Ant 1.5.2 No; default is 644
dirmode A 3 digit octal string, specify the user, group and other modes in the standard Unix fashion. Only applies to directories. Since Ant 1.5.2 No; default is 755
encoding The character encoding to use for filenames inside the zip file. For a list of possible values see the Supported Encodings. No; defaults to default JVM character encoding
erroronmissingarchive Specify what happens if the archive does not exist. If true, a build error will happen; if false, the fileset will be ignored/empty. Since Ant 1.8.0 No; defaults to true

The fullpath attribute can only be set for filesets that represent a single file. The prefix and fullpath attributes cannot both be set on the same fileset.

When using the src attribute, includes and excludes patterns may be used to specify a subset of the archive for inclusion in the archive as with the dir attribute.

Please note that currently only the tar and zip tasks use the permission.

Parameters specified as nested elements

any file system based resource or single element resource collection

The specified resource will be used as src.


<zip destfile="${dist}/">
  <zipfileset dir="htdocs/manual" prefix="docs/user-guide"/>
  <zipfileset dir="." includes="ChangeLog27.txt" fullpath="docs/ChangeLog.txt"/>
  <zipfileset src="" includes="**/*.html" prefix="docs/examples"/>

zips all files in the htdocs/manual directory into the docs/user-guide directory in the archive, adds the file ChangeLog27.txt in the current directory as docs/ChangeLog.txt, and includes all the html files in under docs/examples. The archive might end up containing the files: