Pregunta

Quiero eliminar todos los directorios y subdirectorios de un directorio raíz que contienen " tmp " en sus nombres. Esto debería incluir cualquier archivo .svn también. Mi primera suposición es utilizar

<delete>
    <dirset dir="${root}">
          <include name="**/*tmp*" />
    </dirset>
</delete>

Parece que esto no funciona, ya que no puedes anidar un dirset en una etiqueta delete .

¿Es este un enfoque correcto o debería estar haciendo otra cosa?

  • versión ant == 1.6.5.
  • versión de java == 1.6.0_04
¿Fue útil?

Solución

Aquí está la respuesta que funcionó para mí:

<delete includeemptydirs="true">
    <fileset dir="${root}" defaultexcludes="false">
       <include name="**/*tmp*/**" />
    </fileset>
</delete>

Tuve una complicación adicional que necesitaba para eliminar los directorios .svn también. Con defaultexcludes , . * se estaban excluyendo, por lo que los directorios vacíos no estaban realmente vacíos y, por lo tanto, no se eliminaban.

El atributo includeemptydirs (gracias, flicken, XL-Plüschhase) habilita el comodín ** al final para que coincida con una cadena vacía.

Otros consejos

prueba:

<delete includeemptydirs="true">
    <fileset dir="${root}">
          <include name="**/*tmp*/*" />
    </fileset>
</delete>

¡Gracias flipando!

Solo quería agregar que la parte de la solución que funcionó para mí fue agregar / ** al final de la ruta de inclusión. Intenté lo siguiente para eliminar los directorios de Eclipse .settings:

<delete includeemptydirs="true">
    <fileset dir="${basedir}" includes"**/.settings">
</delete>

pero no funcionó hasta que lo cambié a lo siguiente:

<delete includeemptydirs="true">
    <fileset dir="${basedir}" includes"**/.settings/**">
</delete>

Por alguna razón, al agregar / ** a la ruta se eliminan los archivos en el directorio correspondiente, todos los archivos en todos los subdirectorios, los subdirectorios y los directorios correspondientes. Al agregar / * solo se eliminan los archivos en el directorio correspondiente, pero no se eliminará el directorio correspondiente.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top