D.3 FileSet

FileSets offer an easy and straightforward way to include files. The tag supports Selectors (see Appendix G, Core selectors) and PatternSets (see Section D.4, “PatternSet ”). Additionally, you can include/exclude files in/from a fileset using the <include>/<exclude> tags. In patterns, one asterisk (*) maps to a part of a file/directory name within a directory level. Two asterisks (**) may include above the "border" of the directory separator.

Table D.3:  Attributes for the <fileset> tag

NameTypeDescriptionDefaultRequired
dirStringThe directory, the paths given in include/exclude are relative to.n/aYes
defaultexcludesBooleanWhether default exclusions should be used or not. Default excludes are: *~, #*#, .#*, %*%, CVS, CVS/**, .cvsignore, SCCS, SCCS/**, vssver.scc, .svn, .svn/**, ._*, .DS_Store, .darcs, .darcs/** trueNo
casesensitiveBooleanThe case sensitivity of the file system.trueNo
expandsymboliclinksBooleanWhether to expand/dereference (follow) symbolic links - set to 'true' to emulate old Phing behavior.falseNo
includesStringComma- or space-separated list of patterns of files that must be included; all files are included when omitted.n/aNo
includesfileStringThe name of a file; each line of this file is taken to be an include pattern.n/aNo
excludesStringcomma- or space-separated list of patterns of files that must be excluded; no files (except default excludes) are excluded when omitted.n/aNo
excludesfileStringThe name of a file; each line of this file is taken to be an exclude pattern.n/aNo

D.3.1 Using wildcards

  • test*.xml will include test_42.xml, but it will not include test/some.xml.

  • test**.xml fits to test_42.xml as well as to test/bla.xml, for example.

  • **/*.ent.xml fits to all files that end with ent.xml in all subdirectories of the directory specified with the dir attribute of the <fileset> tag. However, it will not include any files that are directly in the base directory of the file set.

D.3.2 Usage Examples

<fileset dir="/etc" >
  <include name="httpd/**" />
  <include name="php.ini" />
</fileset>

<fileset dir="/etc" >
  <patternset>
    <include name="**/*.php"/>
    <exclude name="**/*Test*"/>
  </patternset>
</fileset>

This will include the apache configuration and PHP configuration file from /etc.

D.3.3 Nested tags

The tags that are supported by Fileset are:

  • include

  • exclude

  • patternset

The <include> and the <exclude> tags must have a name attribute that contains the pattern to include/exclude.