verificar validar script saber fichero existencia existe directorio comprobar como archivo ant build

validar - ¿Cómo verificar si el directorio existe antes de eliminarlo, usando ANT?



verificar existencia de archivo en shell (6)

Usando ANT , ¿cómo puedo asegurarme de que ese directorio exista antes de intentar eliminarlo?

Como parte de mi tarea limpia actual,

<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) eliminar ocurre cuando hay algo que eliminar.

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


Buena y limpia solución a continuación: Usando ant-contribs.jar

Cuando use 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>


Para este caso específico, no voy a responder la pregunta "cómo encontrar si existe un directorio", porque eso ya ha sido respondido, pero solo voy a señalar que en su tarea limpia puede usar failonerror="false" para evitar que la tarea ant se cierre. Esto debería ser adecuado en una tarea limpia porque 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.


Puede hacerlo ordenando eliminar una lista de archivos con nombres iguales al nombre que necesita. Es mucho más fácil y directo que crear un objetivo especial. Y no necesita ninguna herramienta adicional, solo 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


Aquí está la respuesta:

<target name="delete.target.directory"> <delete includeemptydirs="true" verbose="false" if="${(directory::exists(directory))}"> <fileset basedir="${directory}"> <include name="**/*.*" /> </fileset> </delete> </target>



con la hormiga de vainilla, usarías 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>

else see = Ant verificar existencia para un conjunto de archivos
por una pregunta similar