我想创建一个匹配特定模式的文件的文件集,但是从该集中排除在同一目录中具有特定其他文件的任何文件。
例如,我想要一个匹配所有./*/file.xml文件的文件集,例如:
<fileset dir="${some.dir}" includes="*/file.xml" />
...但我想排除与ignore.this文件在同一个导演中的所有file.xml文件。
所以如果dir结构是:
foo/file.xml
bar/file.xml
bar/ignore.this
...将选择foo中的file.xml,但bar不会。
答案 0 :(得分:3)
您可以将带有present
selector的文件集与映射器一起使用:
<fileset dir="${some.dir}" includes="*/file.xml">
<present targetdir="${some.dir}" present="srconly">
<mapper type="regexp" from="^(.*)/.*" to="\1/ignore.this" />
</present>
</fileset>
即,仅包含名为file.xml
的文件,其中在名为ignore.this
的同一目录中没有相应的文件。