2011-07-14 819 views
14

Duplicar posible:
Ant task to check if a file exists?Compruebe el archivo existencia en hormiga

¿Cómo se puede comprobar si existe un archivo en un directorio, si no utilizar otro archivo en una ubicación diferente. Intenté seguirme, pero no me ayuda con lo que quiero. ¿Alguien podría ayudar?

<condition property="somefile.available"> 
    <or> 
     <available file="/home/doc/somefile"/> 
     <and> 
      <available file="/usr/local/somefile" /> 
     </and> 
    </or> 
</condition> 

Respuesta

21

Utilice pruebas de condición para establecer si hay archivos. A continuación tiene un objetivo para cada condición verdadera

<target name="go" depends="file-checks, do-something-with-first-file, do-something-with-second-file"/> 

<target name="file-checks"> 
    <available file="/home/doc/somefile" property="first.file.found"/> 
    <available file="/usr/local/somefile" property="second.file.found"/> 
</target> 

<target name="do-something-with-first-file" if="first.file.found"> 
    ??? 
</target> 

<target name="do-something-with-second-file" if="second.file.found"> 
    ??? 
</target> 
12

Si no les importa usar ant-contrib se puede tomar el enfoque de procedimiento como éste:

<if> 
    <available file="file1"/> 
    <then> 
     <property name="file.exists" value="true"/> 
    </then> 
    <else> 
     <if> 
     <available file="file2"/> 
     <then> 
      <copy file="file2" tofile="file1"/> 
      <property name="file.exists" value="true"/> 
     </then> 
     </if> 
    </else> 
    </if> 

De lo contrario es probable que pueda utilizar un objetivo que está condicionada a una propiedad que está siendo establecido para indicar si el archivo ya existe en la ubicación preferida, como Ant task to run an Ant target only if a file exists? pero usando unless en lugar de if.

+0

Gracias Ben para su reply.Actually lo que quiero lograr es que comprobar ambos archivos y si el primer archivo no existe, es decir/home/doc/somefile entonces podemos copia el segundo a ese directorio. – user87636

+0

comprobamos ambos archivos y si el primer archivo no existe, es decir,/home/doc/somefile, podemos copiar el segundo a ese directorio. Por ejemplo . Esto parece no funcionar. – user87636

+0

Gracias Mark y Ben. Logro salir con una solución de las ideas que obtuve de ustedes – user87636

Cuestiones relacionadas