J'ai besoin de copier tous les fichiers d'un dossier, à l'exception du répertoire dans ce dossier à l'aide du script ANT.
IM en utilisant ci-dessous le script pour le faire. P>
<copy todir="targetsir"> <fileset dir="srcdir"> <include name="**/*.*"/> </fileset> </copy>
7 Réponses :
Voulez-vous dire que qui devrait fonctionner. Le " édité pour exclure la création de sous-répertoires vides. EM> P> < / p> srcdir code> sous-répertoires de conatins, et vous ne souhaitez pas les copier, vous voulez simplement copier les fichiers un niveau en dessous
srcdir code>?
** / *. * Code>" Dans votre question signifie "chaque fichier sous chaque sous-répertoire". Il suffit d'utiliser "
* code>" correspondra simplement aux fichiers sous SRCDIR, non sous-répertoires. P>
Le * en soi crée des sous-répertoires vides. Je ne considérerais pas que le comportement attendu. Je considérerais que la solution de pavel ci-dessous est la bonne.
pouvez-vous essayer ** est utilisé pour correspondre à une structure de répertoire. p> p>
Le secret consiste à utiliser pas de fichier de fichiers mais différent à la place. P>
Je suppose que d'être plus explicite sur ce que vous voulez dire ici serait bénéfique
<copy todir="targetsir" includeEmptyDirs="false"> <fileset dir="srcdir"> <include name="*"/> </fileset> </copy>
Je n'ai pas assez de réputation pour commenter, alors j'écris un nouveau post ici. Les deux solutions pour inclure Le premier crée des répertoires vides présents dans le répertoire source, car Pour le faire correctement, vous pouvez exploiter le sélecteur nom = "*" code> ou
nom = "*. *" Code> fonctionne bien en général, mais aucun d'entre eux n'est exactement ce que vous pourriez vous attendre.
* code> correspond également au nom du répertoire.
*. * code> fonctionne surtout parce qu'une convention que les fichiers ont une extension et des répertoires non, mais si vous nommez votre répertoire
my.dir code>, ce générique créera un répertoire vide avec ce nom De plus. P>
Je pense qu'il y a un moyen plus facile. p>
aplatin = "vrai" code> - Ignorer la structure de répertoire du répertoire de source, copiez tous les fichiers dans un répertoire unique, spécifié par l'attribut TODIR. La valeur par défaut est
false code>. P>
Cette question était très difficile à mettre en mots. Votre réponse était juste sur la page des fourmis qui me regardait. Merci gentiment pour ça!
Si votre dossier a de nombreux sous-répertoires et que vous ne voulez pas qu'ils soient copiés (si vous voulez uniquement des fichiers), essayez ceci ..
<target name="copy"> <copy todir="out" flatten="true"> <fileset dir="tn"> <filename name="**/cit.txt" /> </fileset> </copy> </target>
Par défaut, Flatten est défini sur "False"