Как я могу дважды повторить имя файла, используя «набор файлов» и «pathconvert»?
Вопрос
У меня есть эта простая задача ANT, которая перечисляет все файлы .png в папке:
<target name="listimages">
<!-- Assume files a A and B -->
<fileset id="dist.contents" dir="${basedir}">
<include name="**/*.png"/>
</fileset>
<pathconvert pathsep="${line.separator}"
property="prop.dist.contents"
refid="dist.contents">
<mapper type="flatten" />
<map from="${basedir}" to=""/>
</pathconvert>
<echo>${prop.dist.contents}</echo>
</target>
Это отпечатки
[echo] A.png
[echo] B.png
Но я хочу, чтобы имена файлов появились дважды на каждой строке.
[echo] A.png,A.png
[echo] B.png,B.png
Как я могу это сделать?
(Этот вопрос является продолжением Как я могу распечатать набор файлов в файл, одно имя файла на строку?)
Решение
Вы можете использовать regexp Mapper (Вместо сплюсения), который реализует сплюсение и дублирование. Это довольно упрощенно, но может сделать:
<mapper type="regexp" from=".*/(.*)" to="\1,\1" />
Потребуется корректировка для вашего локального разделителя пути.
Лучше, однако, используйте цепочку вместо сглаживания:
<chainedmapper>
<mapper type="flatten" />
<mapper type="regexp" from="(.*)" to="\1,\1" />
</chainedmapper>
Не связан с StackOverflow