30 votos

¿Cómo comprobar si existe el directorio antes de eliminarlo, usando ANT?

Usando ANT , ¿cómo puedo estar seguro de que existe el directorio antes de intentar eliminarlo?

Como parte de mi tarea de limpieza actual, i

 <target name="clean" description="clean">
    <delete dir="${build}" />
    <delete dir="${bin}" />
    <delete dir="${dist}/myrunner.${version}.jar" />
    <delete dir="${doc}" />
    <delete dir="${report}" />
</target>
 

Esto funciona bien, sin embargo (obviamente) Retire ocurre cuando hay algo de quitar.

Usando ANT , ¿cómo puedo comprobar si el directorio existe?

36voto

ekangas Puntos 390

Para este caso específico, no voy a responder a la pregunta "¿cómo encontrar si existe un directorio", debido a que ya ha sido contestada, pero sólo voy a señalar que en su tarea de limpieza se puede utilizar failonerror="false" para mantener la tarea de hormigas salgan. Esto debería ser adecuado en una tarea de limpieza ya que si no hay nada que limpiar, no debería ser un problema.

     <target name="clean" description="clean">
        <delete dir="${build}" failonerror="false"/>
        ....
        <delete dir="${report}" failonerror="false"/>
    </target>
 

Esto es útil si no desea instalar ant-contrib o no puede por alguna razón.

13voto

Rebse Puntos 5278

con la hormiga de vainilla que usaría algo como =

  <target name="check">
  <condition property="deldir">
    <available file="${somedir}" type="dir"/>
  </condition>
 </target>

 <target name="deldir" depends="check" if="deldir">
 <delete dir="${somedir}"/>
    <!-- .. -->
 </target>
 

ver otra cosa = existencia de verificación de la hormiga por un conjunto de archivos
para una pregunta similar

12voto

Jam Puntos 13872

Agradable y limpio solución a continuación: Usando hormiguero contribs.jar

Al utilizar esta solución, asegúrese de poner la siguiente línea en la parte superior

 <!-- For <if> statements -->
<taskdef resource="net/sf/antcontrib/antlib.xml" />
 


<!-- Remove distribution directories and their content for a clean build -->
    <target name="clean" description="clean">

        <if>
            <available file="${build}" type="dir" />
            <then>
                <delete dir="${build}" />
            </then>
        </if>
    </target>
 

3voto

pjeong Puntos 19

Echa un vistazo a la tarea disponibles.

Aquí hay una pregunta similar.

¿Tengo alguna forma de comprobar la existencia de un directorio en ANT? (No es un archivo)

0voto

Gangnus Puntos 7646

Puede hacerlo por pedir para eliminar una lista de archivos con nombres iguales al nombre que usted necesita. Es mucho más fácil y directa que crear un destino especial. Y no se necesita ninguna herramienta adicional, simplemente hormiga pura.

     <delete>
        <fileset includes="name or names of file or files you need to delete"/>
    </delete>
 

http://ant.apache.org/manual/Types/fileset.html

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by: