Domanda

Voglio eliminare tutte le directory e le sottodirectory in una directory radice che contiene " tmp " nei loro nomi. Ciò dovrebbe includere anche qualsiasi file .svn. La mia prima ipotesi è di usare

<delete>
    <dirset dir="${root}">
          <include name="**/*tmp*" />
    </dirset>
</delete>

Questo non sembra funzionare poiché non puoi nidificare un dirset in un tag delete .

È un approccio corretto o dovrei fare qualcos'altro?

  • versione ant == 1.6.5.
  • versione java == 1.6.0_04
È stato utile?

Soluzione

Ecco la risposta che ha funzionato per me:

<delete includeemptydirs="true">
    <fileset dir="${root}" defaultexcludes="false">
       <include name="**/*tmp*/**" />
    </fileset>
</delete>

Ho avuto un'ulteriore complicazione di cui avevo bisogno per rimuovere anche le directory .svn . Con defaultexcludes , i file . * venivano esclusi e quindi le directory vuote non erano realmente vuote e quindi non venivano rimosse.

L'attributo includeemptydirs (grazie, sfarfallio, XL-Plüschhase) consente al carattere jolly ** finale di abbinare una stringa vuota.

Altri suggerimenti

Prova:

<delete includeemptydirs="true">
    <fileset dir="${root}">
          <include name="**/*tmp*/*" />
    </fileset>
</delete>

Grazie, sfarfallio!

Volevo solo aggiungere che la parte della soluzione che funzionava per me stava aggiungendo / ** alla fine del percorso di inclusione. Ho provato quanto segue per eliminare le directory .settings di Eclipse:

<delete includeemptydirs="true">
    <fileset dir="${basedir}" includes"**/.settings">
</delete>

ma non ha funzionato fino a quando non l'ho modificato come segue:

<delete includeemptydirs="true">
    <fileset dir="${basedir}" includes"**/.settings/**">
</delete>

Per qualche motivo, l'aggiunta di / ** al percorso elimina i file nella directory corrispondente, tutti i file in tutte le sottodirectory, le sottodirectory e le directory corrispondenti. L'aggiunta di / * elimina solo i file nella directory corrispondente ma non elimina la directory corrispondente.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top