2010-12-01 9 views
6


¿Cómo mover directorios a un directorio utilizando una tarea Ant?Objetivo Ant para mover directorios fuera de otro directorio

Mi estructura de directorios es como:

my/directory/root 
       |-dir1/one/same/lib 
       |-dir2/two/same/lib 
       |-dir3/three/same/lib 
       |-dir4/four/same/lib 

Y me gustaría mover y carpetas escala "igual/lib" y moverlo a "mi/directorio/root"
(por fin: mi/directorio/root/same/lib)

+0

¿qué quiere decir con 'escala' - fusionar los contenidos de esos 4 directorios a uno? –

+0

Sí. Me refiero a combinar esos 4 directorios a uno. –

Respuesta

4

Algo como esto debería funcionar:

<target name="moveDirs"> 
    <mkdir dir="my/directory/root/merged" failonerror="false"> 
    <move todir="my/directory/root/merged"> 
    <fileset dir="my/directory/root"> 
     <include name="dir*/*"/> 
    </fileset> 
    <mapper> 
     <regexpmapper from="^(.*?)dir[0-9]+.(.*)$" to="\1\2"/> 
    </mapper> 
    </move> 
</target> 

Referencia:

+0

No funciona. Obtengo el registro: [mover] Saltarse el movimiento propio de mi/directorio/raíz/dir1/mismo –

+0

¿O sabe cómo hacerlo con definir en el archivo de propiedades estas carpetas? –

+0

vea mi actualización, quizás esto funcione –

1

Eche un vistazo al Ant Move Task. Pruebe lo siguiente:

<target name="moveDirs"> 
    <mkdir dir="my/directory/root/same/lib" failonerror="false"> 
    <move todir="my/directory/root/same/lib"> 
    <fileset dir="my/directory/root/dir1/one/same/lib"> 
     <include name="**/*"/> 
    </fileset> 
    </move> 
    <move todir="my/directory/root/same/lib"> 
    <fileset dir="my/directory/root/dir2/two/same/lib"> 
     <include name="**/*"/> 
    </fileset> 
    </move> 
    <move todir="my/directory/root/same/lib"> 
    <fileset dir="my/directory/root/dir3/three/same/lib"> 
     <include name="**/*"/> 
    </fileset> 
    </move> 
    <move todir="my/directory/root/same/lib"> 
    <fileset dir="my/directory/root/dir4/four/same/lib"> 
     <include name="**/*"/> 
    </fileset> 
    </move> 
</target> 
+0

¿Sabes cómo hacerlo de manera más automática? Porque los directorios como 'dir1' 'dir2' son demasiados. –

Cuestiones relacionadas