Frage

Ich möchte alle Verzeichnisse und Unterverzeichnisse unter einem Root -Verzeichnis löschen, das in ihren Namen "TMP" enthält. Dies sollte auch alle .SVN -Dateien enthalten. Meine erste Vermutung ist zu verwenden

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

Dies scheint nicht zu funktionieren, da Sie a nicht nisten können dirset in einem delete Schild.

Ist dies ein korrekter Ansatz oder sollte ich etwas anderes tun?

  • Ameisenversion == 1.6.5.
  • Java Version == 1.6.0_04
War es hilfreich?

Lösung

Hier ist die Antwort, die für mich funktioniert hat:

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

Ich hatte eine zusätzliche Komplikation, die ich entfernen musste .svn Verzeichnisse auch. Mit defaultexcludes, .* Die Dateien wurden ausgeschlossen, und so waren die leeren Verzeichnisse nicht wirklich leer und wurden also nicht entfernt.

Das Attribut includeemptydirs (Danke, Fliche, XL-Plüschhase) ermöglicht das Nachverfolgung ** Wildcard, um der leeren Saite zu entsprechen.

Andere Tipps

Versuchen:

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

Danke Fliche!

Ich wollte nur hinzufügen, dass der Teil der Lösung, der für mich funktioniert hat /** bis zum Ende des Pfades. Ich habe Folgendes ausprobiert, um Eclipse -Verzeichnisse zu löschen:

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

Aber es funktionierte nicht, bis ich es in Folgendes geändert habe:

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

Aus irgendeinem Grund anhängen /** In dem Pfad löscht Dateien im Matching-Verzeichnis, alle Dateien in allen Unterdirektorien, den Unterverzeichnissen und in den passenden Verzeichnissen. Anhang /* Löscht nur Dateien in das Matching -Verzeichnis, löscht das Matching -Verzeichnis jedoch nicht.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top