## FileSet

FileSets are groups of files. These files can be found in a directory tree starting in a base directory and are matched by patterns taken from a number of PatternSets. FileSets can appear inside tasks that support this feature or at the same level as `target` - i.e., as children of `project`.

PatternSets can be specified as nested `<patternset>` elements. In addition, FileSet holds an implicit PatternSet and supports the nested `<include>`, `<includesfile>`, `<exclude>` and `<excludesfile>` elements of PatternSet directly, as well as PatternSet's attributes.

Attribute | Description | Required
dir | the root of the directory tree of this FileSet. | Yes
defaultexcludes | indicates whether default excludes should be used or not (`yes | no`); default excludes are used when omitted. | No
includes | comma- or space-separated list of patterns of files that must be included; all files are included when omitted. | No
includesfile | the name of a file; each line of this file is taken to be an include pattern. | No
excludes | comma- or space-separated list of patterns of files that must be excluded; no files (except default excludes) are excluded when omitted. | No
excludesfile | the name of a file; each line of this file is taken to be an exclude pattern. | No
casesensitive | Must the file system be treated in a case sensitive way? Defaults to true. | No
followsymlinks | Shall symbolic links be followed? Defaults to true. See below. | No

Note: All files/directories for which the canonical path is different from its path are considered symbolic links. On Unix systems this usually means the file really is a symbolic links but it may lead to false results on other platforms.

#### Examples

>     <fileset dir="${server.src}" casesensitive="yes" >
>       <include name="**/*.java"/>
>       <exclude name="**/*Test*"/>
>     </fileset>

Groups all files in directory `${server.src}` that are Java source files and don't have the text `Test` in their name.

>     <fileset dir="${server.src}" casesensitive="yes" >
>       <patternset id="non.test.sources" >
>         <include name="**/*.java"/>
>         <exclude name="**/*Test*"/>
>       </patternset>
>     </fileset>

Groups the same files as the above example, but also establishes a PatternSet that can be referenced in other `<fileset>` elements, rooted at a different directory.

>     <fileset dir="${client.src}" >
>       <patternset refid="non.test.sources"/>
>     </fileset>

Groups all files in directory `${client.src}`, using the same patterns as the above example.

Copyright © 2000-2002 Apache Software Foundation. All rights Reserved.