2013-03-25 12 views
6

w folderze src Mam następujące foldery: DAOS, biznes i model, chcę usunąć przy użyciu skryptu Ant, wszystkie foldery z wyjątkiem „modelu”, więc próbowałem:usuwać foldery z wyjątkiem jednej

<delete includeemptydirs="true"> 
    <fileset dir="${basedir}/src"> 
    <include name="**/*"/> 
    <exclude name="model/*"/> 
    </fileset> 
    </delete> 

Wszystko foldery są usuwane jako "model", który jest pusty !! wszystkie jego pliki są usuwane!

+0

Testowałem to i to działa. Jak rozumiem, chcesz usunąć wszystkie foldery oprócz modelu z jego plikami? – pepuch

+0

tak, to jest to, co chcę – junior

Odpowiedz

8

Spróbuj zamiast

<delete includeemptydirs="true"> 
    <fileset dir="${basedir}/src"> 
     <include name="**/*"/> 
     <exclude name="**/model/**"/> 
    </fileset> 
</delete> 
+0

thx, spróbuję :) – junior

+0

Wykonuje niepotrzebne rekurencyjne wyszukiwanie poddrzewa, które może zająć dużo czasu i jest bezużyteczne. – peterh

6

Do Googlersami przyszłości:

co pracował dla mnie:

<fileset dir="target"> 
    <include name="*/"/> 
    <exclude name="big_and_complex_dir/"/> 
</fileset> 

To usunięte wszystko (co pliki i katalogów) poniżej target/, z wyjątkiem target/big_and_complex_dir.

Moim zamierzeniem było uniknięcie niepotrzebnego przewodnika po katalogach, który w przypadku "big_and_complex_dir" trwał bardzo długo.

Wygląda na to, że interpretacja zestawu plików mrówki ma nietrywialne, nieintuicyjne zachowanie, że musimy zamknąć ścieżkę włączania/wykluczania z /, jeśli zamierzamy wykonywać również operacje rekursywnego podkatalogu.

Powiązane problemy