Ant: Suchen Sie den Pfad einer Datei in einem Verzeichnis

7

Ich möchte den Pfad einer Datei in einem Verzeichnis finden (ähnlich wie beim Befehl 'find' oder dem Befehl 'what', aber ich brauche ihn plattformunabhängig) und ihn als Eigenschaft speichern.

>

Ich habe versucht, die whichresource ant-Aufgabe zu verwenden, aber es funktioniert nicht (ich denke, es ist nur gut, um in JAR-Dateien zu suchen).

Ich würde es vorziehen, wenn es reine Ameise wäre und nicht meine eigene Aufgabe schreiben oder eine Drittanbieter-Erweiterung verwenden würde.

Beachten Sie, dass es im Pfad mehrere Instanzen einer Datei mit diesem Namen geben kann - ich möchte nur die erste Instanz zurückgeben (oder zumindest nur eine auswählen).

Irgendwelche Vorschläge?

    
yonix 20.12.2011, 12:14
quelle

2 Antworten

22

Eine Möglichkeit besteht darin, den Ressourcen-Selektor first zu verwenden. Zum Beispiel, um eine Datei namens a.jar irgendwo im Verzeichnis jars :

zu finden %Vor%

Wenn keine übereinstimmenden Dateien vorhanden sind, wird nichts ausgegeben, sonst erhalten Sie den Pfad zur ersten Übereinstimmung.

    
martin clayton 20.12.2011, 13:38
quelle
7

Hier ist ein Beispiel, das die erste passende Datei auswählt. Die Logik ist wie folgt:

  • Finden Sie alle Übereinstimmungen mithilfe einer Dateigruppe .
  • Verwenden Sie Pfadkonvertierung , um das Ergebnis in einer Eigenschaft zu speichern und jede übereinstimmende Datei durch ein Zeilentrennzeichen zu trennen.
  • Verwenden Sie einen Kopffilter , um die erste übereinstimmende Datei zu finden.

Die Funktionalität ist in einem macrodef zur Wiederverwendbarkeit gekapselt.

%Vor%     
sudocode 20.12.2011 12:59
quelle

Tags und Links