This ANT delete task functions perfectly if the directory contains either FOO.xml or BAR.xml (or both), but will not return successfully if they do not exist.
<delete includeemptydirs="true" followsymlinks="false">
<fileset dir="${apache.base}" erroronmissingdir="false">
<include name="**/*"/>
<exclude name="**/FOO.xml **/BAR.xml"/>
</fileset>
</delete>
Is there a way I could have it work regardless of whether the exclude section of the fileset is empty or not?
Your exclude pattern contains incorrect syntax. When using nested include
or exclude
elements, file name patterns need to be listed separately, as such:
<delete includeemptydirs="true" followsymlinks="false">
<fileset dir="${apache.base}" erroronmissingdir="false">
<exclude name="**/FOO.xml"/>
<exclude name="**/BAR.xml"/>
<include name="**/*"/>
</fileset>
</delete>
However, if you use fileset
's includes
or excludes
attributes, a comma-delimited list will actually work;
<delete includeemptydirs="true" followsymlinks="false">
<fileset
dir="${apache.base}"
includes="**/*"
excludes="**/FOO.xml,**/BAR.xml"
/>
</delete>