À l'aide de mapper & fileset pour copier des fichiers dans un répertoire différent?
Je veux créer une cible Ant qui copie les fichiers dans un répertoire d'un répertoire de destination avec la même structure de dossiers, plus un autre sous-dossier annexé.
Par exemple, la source est:
a/b/c/foo.pdf
d/e/f/bar.pdf
Je veux la destination:
a/b/c/x/foo.pdf
d/e/f/x/foo.pdf
Voici ma cible jusqu'à présent, mais il ne semble pas faire quoi que ce soit:
<copy todir="${dest.dir}">
<fileset dir="${src.dir}" casesensitive="yes">
<include name="**${file.separator}foo.pdf" />
</fileset>
<mapper type="glob"
from="foo.pdf" to="x${file.separator}foo.pdf" />
</copy>
Ce qui me manque?
OriginalL'auteur GJTorikian | 2010-11-18
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser un
regexp
mappeur:J'ai utilisé des fichiers codés en dur.séparateurs pour le raccourcir. Fondamentalement, vous divisez le chemin d'accès au fichier d'entrée (de) dans le répertoire et le nom de fichier (capture
\1
et\2
), puis insérez le\x
élément supplémentaire entre eux (à).Je ne suis pas clair sur votre exemple - on dirait que vous voulez match 'de la barre.pdf "et le renommer en" foo.pdf', ainsi que la modification de l'annuaire. Si vous avez besoin de le faire, vous pourriez envisager de chaînage un couple de plus simple regexp cartographes, plutôt que d'essayer de faire cuire un complexe:
Lors de l'utilisation d'un
glob
mappeur, vous devez spécifier un générique*
dans le champ de:Donc quelque chose comme cela peut fonctionner:
J'ai ajouté une note sur le glob mappeur, hth.
OriginalL'auteur martin clayton