Java 使用Ant生成逗号分隔的文件列表

Java 使用Ant生成逗号分隔的文件列表,java,ant,Java,Ant,我试图在当前目录下创建一个以逗号分隔的文件或目录列表。例如,假设我有以下文件夹结构: Root -- Directory1 -- Directory2 ... 根 --目录1 --目录2 ... 我想生成一个包含“Directory1,Directory2”的变量或属性。我曾尝试在上迭代(使用ant contrib”作为“任务”),但这会生成绝对路径;然后,我使用“basename”任务提取了文件名,但这反过来会生成一个输出属性。由于属性是不可变的,我在实践中得到的是“Directory1,Di

我试图在当前目录下创建一个以逗号分隔的文件或目录列表。例如,假设我有以下文件夹结构:

Root -- Directory1 -- Directory2 ... 根 --目录1 --目录2 ... 我想生成一个包含“Directory1,Directory2”的变量或属性。我曾尝试在
上迭代(使用ant contrib”作为“任务”),但这会生成绝对路径;然后,我使用“basename”任务提取了文件名,但这反过来会生成一个输出属性。由于属性是不可变的,我在实践中得到的是“Directory1,Directory1,…”


有没有更明智的方法来实现这一点,或者我需要编写Java扩展来实现这一点?

可以使用
pathconvert
任务格式化带有任意分隔符的目录集:

<dirset id="dirs" dir="." includes="*"/>
<pathconvert dirsep="/" pathsep="," property="dirs" refid="dirs"/>
<echo message="${dirs}"/>

确认约恩的答案也正是我所需要的(作为起点)

<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} ***]"/>

dir是一个类似于/root/build/workspace的绝对路径,包含多个子目录。
输出是一个以空格分隔的目录列表。

花费了更多的精力(使用globmapper和其他一些小技巧),我很确定在您的示例中您将dirsep切换为pathsep,但您为我指出了我需要的确切方向。谢谢看起来“dirsep”和“pathsep”值已交换。我想你是指dirsep=“/”pathsep=“,”