2009-06-17 11 views
9

Jaki jest najprostszy sposób na przeniesienie wszystkiego z katalogu docelowego?Ant target do przenoszenia katalogów z innego katalogu

Mam to basedir/parentdir/<subdir>. Mam wiele różnych <subdir>. Muszę przenieść je na ten sam poziom, co parentdir, aby stał się basedir/<subdir>. Teraz każdy <subdir> zawiera głębokie drzewa wielu innych podkatalogów i plików, w tym puste podkatalogi.

Próbowałem następujące:

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

Że nie udało się przenieść pustych katalogów - znaczenie po przeprowadzce, cały <subdir> brakuje ich pustych podkatalogów. „Przenieść” rzekomo kopie emptysubdirectories domyślnie, więc próbowałem następujące dalej:

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

Choć udało się przenieść pustych podkatalogów, dziwne jest to, że wszystkie natychmiastowe podkatalogi wszystkich <subdir> zostanie skopiowany do basedir . Co <subdir> ma src, i build. Są one teraz w wersji basedir, a także w oryginalnym przeniesionym <subdir>.

Jestem pewien, że robię coś złego, ale nie wiem co. Czy podchodzę do rzeczy w niewłaściwy sposób?

+0

Nie używać spłaszczyć = true, prawda? –

+0

Najprawdopodobniej musisz przenieść je do tymczasowej lokalizacji ... –

+0

@John: Nie, chcę zachować strukturę dir. @mike: Właściwie, "parentdir" _jest_ tymczasową lokalizacją dla mnie: D – aberrant80

Odpowiedz

10

Spróbuj

<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 ma być domyślnie prawdą, więc nie ustawiłem go. Również przykład w Ant doc użył includeemptydirs = "false" zamiast yes/no ... strange. **/* było poprawne. Zniszczyłem stare cele i przepisałem większość z nich. Myślę, że mój pierwotny cel, który ustawił rodzica, miał problemy. Skopiowałem twoje rzeczy i wszystko działa zgodnie z przeznaczeniem. Dzięki! – aberrant80

+0

Co zrobić, jeśli nie znam nazwy parentdir? –

Powiązane problemy