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 include/exclude 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. Default is 644. since Ant 1.5.2. No
dirmode A 3 digit octal string, specify the user, group and other modes in the standard Unix fashion. Only applies to directories. Default is 755. since Ant 1.5.2. No
encoding The character encoding to use for filenames inside the zip file. For a list of possible values see the Supported Encodings. Defaults to the platform's default character encoding. Only supported by zipfileset. No
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. Defaults to true. Since Ant 1.8.0 No

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, include and exclude 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: