Ich habe copydireinen Verzeichnisbaum kopiert, aber er ist veraltet. Mein Verzeichnis enthält einige Unterverzeichnisse, und einige enthalten Dateien, andere enthalten weitere Unterverzeichnisse.
Klingt so, als ob Sie eine rekursive Kopie erstellen möchten. Und das ist die Lösung, die Omnipresent gegeben hat. Weitere Personen finden diese Frage möglicherweise, wenn das Wort "rekursiv" in der Frage vorkommt.
anscheinend ist das includesnicht nötig, wenn du alles willst (siehe Antwort von Benutzer s1n )
Abel
40
Dies kopiert den Inhalt von {src.dir}, aber nicht das eigentliche Verzeichnis
cmcginty
Kopiert kein Did, aber es ist Inhalt.
A-Live
Da Sie die akzeptierte Antwort sind, können Sie sie korrigieren, um die richtige Antwort zu werden (erys Antwort ist korrekt) ;-)
Christian Fries
Ich verstehe, dass die Idee von SO eine kollektive Kuration ist, weshalb jeder die Frage eines anderen bearbeiten kann (obwohl Sie viel Wiederholung benötigen, um die Bearbeitung zu überspringen).
Andrew Spencer
117
Kopieren Sie den Inhalt einschließlich des Verzeichnisses.
Dies sollte die richtige Antwort sein. Die andere Antwort bezieht sich auf die Frage "Wie kopieren Sie den Inhalt eines Verzeichnisses mit Ant?". Es gibt einen subtilen Unterschied.
cmcginty
"Dies sollte die RICHTIGE Antwort sein": Absolut, obwohl der Unterschied nicht so subtil ist, wenn Sie Ihre Ressourcen nicht mit den erwarteten Pfadnamen laden können.
Jim Pivarski
1
es funktioniert nicht für Ameise 1.8, es scheint, dass nichts passiert ist.
CCC
8
@CCC sicherstellen, dass $ {src.dir} relativ zu $ {src.dir.parent} ist und kein vollständiger Pfad
Mike Demenok
sehr irreführend, wie x.parentsoll NICHT der parentvon x... -_-
nonchip
25
Sie sollten nur das Verzeichnis angeben müssen (ohne die Includes-Eigenschaft):
@ s1n Dieser Befehl kopiert nur den gesamten Inhalt von src_dir nach ../new/dir und nicht nach src_dir. Wie kopieren wir src_dir (Verzeichnis) an einen anderen Ort?
Pipalayan Nayak
14
Kopieren Sie den Inhalt einschließlich des Verzeichnisses.
Ein guter Punkt: ant kopiert die Unterverzeichnisse nur, wenn die Quelldateien neuer als die Zieldateien sind. [1] In meinem Fall wurden die Unterverzeichnisse nicht kopiert (ich verwende verbose = "true"), da es keine Änderungen gab und sie sich bereits im Ziel befanden. Sie können "Überschreiben" verwenden, um es zu erzwingen, oder einige der Dateien in Ihren Quell-Unterverzeichnissen berühren.
Ich habe Include-Tags verwendet, wie im folgenden Code-Snippet in meiner build.xml-Datei gezeigt, um einzelne JAR-Dateien in ein Verzeichnis zu kopieren.
Eine weitere Ameisenaufgabe ist Copydir . Der wichtigste Teil hier ist, den Namen des Verzeichnisses anzugeben, das Sie nach dem Zielverzeichnis kopieren möchten. Die Unterverzeichnisse und Dateien werden automatisch kopiert.
Von Ihrem Link: Diese Aufgabe ist veraltet. Verwenden Sie stattdessen die Aufgabe Kopieren.
Jim
0
Dieser Code sollte den Ordner sowie dessen Inhalt kopieren. Außerdem wird die Basisnamen-Task verwendet, um zu vermeiden, dass eine manuelle Pfadanalyse durchgeführt werden muss.
Antworten:
glaube, das wird tun, was du willst ... (Rekursive Kopie fertig)
quelle
includes
nicht nötig, wenn du alles willst (siehe Antwort von Benutzer s1n )Kopieren Sie den Inhalt einschließlich des Verzeichnisses.
Hinweis: $ {src.dir} ist relativ zu $ {src.dir.parent} und kein vollständiger Pfad
quelle
x.parent
soll NICHT derparent
vonx
... -_-Sie sollten nur das Verzeichnis angeben müssen (ohne die Includes-Eigenschaft):
Weitere Details und Beispiele finden Sie im Handbuch .
quelle
Kopieren Sie den Inhalt einschließlich des Verzeichnisses.
quelle
Ein guter Punkt: ant kopiert die Unterverzeichnisse nur, wenn die Quelldateien neuer als die Zieldateien sind. [1] In meinem Fall wurden die Unterverzeichnisse nicht kopiert (ich verwende verbose = "true"), da es keine Änderungen gab und sie sich bereits im Ziel befanden. Sie können "Überschreiben" verwenden, um es zu erzwingen, oder einige der Dateien in Ihren Quell-Unterverzeichnissen berühren.
quelle
Ich habe Include-Tags verwendet, wie im folgenden Code-Snippet in meiner build.xml-Datei gezeigt, um einzelne JAR-Dateien in ein Verzeichnis zu kopieren.
quelle
Aus dem Beispiel hier können Sie eine einfache Ant-Datei mithilfe der Kopieraufgabe schreiben.
Dies sollte alles darin kopieren
src_dir
(außer es)new/dir
.quelle
Ich füge ein allgemeineres Muster hinzu, um alle Unterordner zu kopieren.
Weitere Informationen finden Sie unter Muster .
quelle
Eine weitere Ameisenaufgabe ist Copydir . Der wichtigste Teil hier ist, den Namen des Verzeichnisses anzugeben, das Sie nach dem Zielverzeichnis kopieren möchten. Die Unterverzeichnisse und Dateien werden automatisch kopiert.
quelle
Dieser Code sollte den Ordner sowie dessen Inhalt kopieren. Außerdem wird die Basisnamen-Task verwendet, um zu vermeiden, dass eine manuelle Pfadanalyse durchgeführt werden muss.
quelle
Ich habe schließlich mit folgendem Code kopiert
Dadurch wird der src-Ordner von dist zum Erstellen kopiert.
Hoffe das hilft jemandem.
quelle