D.3 FileSet
Prev | Appendix D. Core Types | Next

## D.3 FileSet

FileSets offer an easy and straightforward way to include files. The tag supports Selectors and PatternSets. 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

Name | Type | Description | Default | Required
--- | --- | --- | --- | ---
`dir` | `String` | The directory, the paths given in `include`/`exclude` are relative to. | n/a | Yes
`defaultexcludes` | `Boolean` | Whether default exclusions should be used or not. Default excludes are: `*~`, `#*#`, `.#*`, `%*%`, `CVS`, `CVS/**`, `.cvsignore`, `SCCS`, `SCCS/**`, `vssver.scc`, `.svn`, `.svn/**`, `._*`, `.DS_Store`, `.darcs`, `.darcs/**`, `.git`, `.git/**`, `.gitattributes`, `.gitignore`, `.gitmodules` | `true` | No
`casesensitive` | `Boolean` | The case sensitivity of the file system. | `true` | No
`expandsymboliclinks` | `Boolean` | Whether to expand/dereference (follow) symbolic links - set to 'true' to emulate old Phing behavior. | `false` | No
`includes` | `String` | Comma- or space-separated list of patterns of files that must be included; all files are included when omitted. | n/a | No
`includesfile` | `String` | The name of a file; each line of this file is taken to be an include pattern. | n/a | No
`excludes` | `String` | comma- or space-separated list of patterns of files that must be excluded; no files (except default excludes) are excluded when omitted. | n/a | No
`excludesfile` | `String` | The name of a file; each line of this file is taken to be an exclude pattern. | n/a | No

### 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`

- any of the selectors

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

### D.3.4 Related types

- pearpackagefileset

Prev | Up | Next
D.2 FileList | Home | D.4 PatternSet