no es tan difícil ...
<copy todir="${copy.dir}">
<fileset dir="temp">
<include name="**/dir3/**"/>
</fileset>
</copy>
Cuando utiliza la directiva include
, solo incluirá los archivos que coincidan con el patrón que le proporcione. En este caso, estoy copiando solo aquellos archivos que tienen /dir3/
en algún lugar en su nombre de ruta completo. Esto incluye subdirectorios en dir3
y todos los archivos en dir3
.
Usted puede usar la directiva exclude
para anular las directivas include
:
<copy todir="${copy.dir}">
<fileset dir="temp">
<include name="**/dir3/**"/>
<exclude name="**/dir3/*"/>
</fileset>
</copy>
Esto copia todos los subdirectorios y archivos en los subdirectorios, pero no los archivos bajo dir3
sí. El *
coincide con todos los archivos en el directorio, mientras que **
coincide con todos los archivos en el árbol de directorios completo.
Observe que esto creará un directorio temp/dir2/dir3
. Si quiero temp/dir3
, tengo que configurar mi conjunto de archivos al directorio principal de dir3
:
<copy todir="${copy.dir}">
<fileset dir="temp/dir2">
<include name="dir3/**"/>
</fileset>
</copy>
Hacer esto:
<copy todir="${copy.dir}">
<fileset dir="temp/dir2/dir3"/>
</copy>
creará un directorio temp
con todos los archivos directamente bajo dir3
directamente bajo temp
. También habrá un directorio temp/dir4
y temp/dir5
que contiene todos los archivos (y árboles de directorios) debajo de esos directorios.