2010-09-09 10 views
5

Szukam skopiować katalog z jednej lokalizacji do drugiej. Jednak po spojrzeniu na "copy" i "copyDir" (co jest przestarzałe) wygląda na to, że Ant domyślnie kopiuje tylko zawartość jednej lokalizacji do drugiej, a nie rzeczywisty katalog (i wszystko w nim zawarte).Jak skopiować katalog z jednej lokalizacji do innej za pomocą Ant?

Tak, jako przykład mam następujące:

./Foo/test.txt 

I stosuje się następujący fragment Ant:

<copy todir="./build"> 
    <fileset dir="./Foo"/> 
</copy> 

Wynik wygląda tak:

./build/test.txt 

Chciałem, aby to było:

./build/Foo/test.txt 

Mam nadzieję, że ma to sens. Jak mogę to zrobić?

Odpowiedz

3

Aby zachować strukturę, konieczne jest skopiowanie folderu nadrzędnego. W poleceniu copy istnieje opcja spłaszczenia, ale domyślnie jest to wartość false. Możesz również utworzyć żądaną strukturę katalogów, a następnie skopiować ją na poziomie pliku bezpośrednio do nowego folderu.

Oto istotne linia z reference:

Kiedy <fileset> służy do wybierania plików do skopiowania, atrybut todir musi być ustawiony. Pliki, które są znajdujący się w katalogu głównym na < zestawu plików > zostaną skopiowane do katalogu w katalogu docelowego pasującą ścieżkę względem katalogu < zestawu plików > baza , chyba że spłaszczyć atrybut jest ustawiony na true .

Problem polega na tym, że jesteś zbierając folder Foo, więc można dostać tylko pliki pod go, trzeba wybrać folder wyżej Foo, aby uzyskać zestaw plików, gdzie Foo/pliku ~ /. Struktura txt istnieje.

+0

Świetnie, dzięki za to. – sjwb

+0

Pomógł mi, oto +1 :) – jfklein

3

Co o tym:

<copy todir="./build"> 
    <fileset dir="."> 
    <include name="Foo/**"/> 
    </fileset> 
</copy> 
Powiązane problemy