2009-06-17 8 views
9

¿Cuál es la forma más simple de mover todo fuera de un directorio de destino?Objetivo Ant para mover directorios fuera de otro directorio

Tengo este basedir/parentdir/<subdir>. Tengo muchos <subdir> diferentes. Necesito moverlos al mismo nivel que parentdir para que se convierta en basedir/<subdir>. Ahora, cada <subdir> contiene un árbol profundo de muchos otros subdirectorios y archivos, incluidos los subdirectorios vacíos.

He intentado lo siguiente:

<move todir="basedir"> 
    <fileset dir="parentdir"> 
     <include name="**/*.*" /> 
    </fileset> 
</move> 

que no lograron mover los directorios vacíos - significado después de la mudanza, todo el <subdir> están perdiendo sus subdirectorios vacíos. "Mover" supuestamente copias emptysubdirectories por defecto, así que he intentado lo siguiente siguiente:

<move todir="basedir"> 
    <fileset dir="parentdir"> 
     <include name="**/*" /> 
     <include name="**/*.*" /> 
    </fileset> 
</move> 

Mientras me las arreglé para mover los subdirectorios vacíos, lo extraño es que todos los subdirectorios inmediata de todos los <subdir> se copia en basedir . Cada <subdir> tiene src, test y build. Estos ahora están ubicados en basedir, así como en su original movido <subdir>.

Estoy seguro de que estoy haciendo algo mal, pero no sé qué. ¿Me estoy acercando a las cosas de la manera incorrecta?

+0

usted no utiliza aplanar = true, ¿verdad? –

+0

probablemente necesite moverlos a una ubicación temporal primero ... –

+0

@John: No, quiero conservar la estructura de directorios. @mike: en realidad, "parentdir" _es_ una ubicación temporal para mí: D – aberrant80

Respuesta

10

probar este

<project name="moveproject" basedir="." default="moveDirs"> 
<target name="moveDirs"> 
    <move todir="${basedir}" includeEmptyDirs="yes" verbose="true"> 
     <fileset dir="parentdir" > 
      <include name="**/*" /> 
     </fileset> 
    </move> 
</target> 
</project> 
+0

includeEmptyDirs se supone que es verdadero por defecto, así que no lo configuré. Además, el ejemplo en Ant doc utilizó includeemptydirs = "false" en lugar de sí/no ... extraño. **/* era correcto. Deseché mis viejos objetivos y reescribí la mayor parte. Creo que mi objetivo original que creó el parentdir tuvo problemas. Copió el suyo y las cosas funcionan como estaba previsto. ¡Gracias! – aberrant80

+0

¿Qué sucede si no sé el nombre de parentdir? –

Cuestiones relacionadas