Создание списка файлов с разделителями-запятыми с помощью Ant - PullRequest
5 голосов
/ 19 июля 2009

Я пытаюсь создать разделенный запятыми список файлов или каталогов в текущем каталоге. Например, предположим, у меня есть следующая структура папок:

Root
-- Directory1
-- Directory2
...

Я хочу создать переменную или свойство, которые содержат «Directory1, Directory2». Я попытался выполнить итерацию (используя ant-contrib "for" task) по <dirset dir="." includes="*">, но это генерирует абсолютные пути; Затем я извлек имена файлов с помощью задачи «basename», однако это, в свою очередь, создает вывод свойство . Поскольку свойства неизменяемы, на практике я получаю «Directory1, Directory1, ...»

Есть ли более разумный способ сделать это, или мне придется написать расширение Java, чтобы сделать это для меня?

Ответы [ 2 ]

10 голосов
/ 19 июля 2009

Задача pathconvert может использоваться для форматирования dirset с произвольными разделителями:

<dirset id="dirs" dir="." includes="*"/>
<pathconvert dirsep="/" pathsep="," property="dirs" refid="dirs"/>
<echo message="${dirs}"/>
4 голосов
/ 30 января 2010

Просто подтверждение ответа Йорна было именно тем, что мне было нужно (в качестве отправной точки).

<dirset id="dirset.sandbox" dir="${sandbox.dir}" includes="*">
  <exclude name="output"/>
</dirset>
<pathconvert pathsep=" " property="dirs.sandbox" refid="dirset.sandbox">
  <mapper type="flatten"/>
</pathconvert>
<echo message="[*** the sandbox dir list is ${dirs.sandbox} ***]"/>

sandbox.dir - это абсолютный путь, похожий на / root / build / workspace и содержащий несколько подкаталогов. Вывод - это разделенный пробелами список этих каталогов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...