Скопируйте содержимое подпапок с помощью Ant

Как я могу скопировать содержимое всех подпапок данной папки, используя Ant?

т.е. у меня такая структура папок

folder/
folder/sub1/1.txt
folder/sub1/f1/1.txt
folder/sub2/2.txt
...

Я не знаю точных названий подпапок. И мне нужно скопировать контент из всех них в одну папку (сохранение структуры контента, т.е. копирование всех файлов в один каталог с использованием flatten не является решением). мне нужно получить

newfolder/1.txt
newfolder/1/1.txt
newfolder/2.txt
...

Позволяет ли набор файлов группировать подпапки таким образом?** обозначает ноль или более каталогов, и использование * как имя каталога запрещено, т.е. <fileset dir="${dir}/*/" /> не приемлемо

Заранее спасибо, Юрий

1 ответ

Решение
<copy toDir="newfolder">
  <fileset dir="folder">
    <include name="*/**"/>
    <exclude name="*"/>
  </fileset>
  <regexpmapper from="^[^/]*/(.*)$$" to="\1" handledirsep="true"/>
</copy>

Вам нужно только указать handledirsep если вы когда-нибудь намереваетесь запустить этот скрипт в Windows.

Другие вопросы по тегам