包含文件的所有子目录的Ant Dirset

时间:2017-08-19 12:28:39

标签: ant dirset

我需要制作一个包含所有包含文件的低级目录的dirset。 例如,结构如:

.
├── _a
├── _b
|   ├── file1.class
|   └── file2.class
├── _c
|   └── _d
|        └── file3.class
├── _e
|   ├── _f
|   └── _g
└── _h
    └── file4.class

会导致目录的dirset:

./b/
./c/d/
./h/

我怎么能实现这个目标?

2 个答案:

答案 0 :(得分:0)

我找到了解决方案,首先在我需要扫描的目录中创建一个文件集,然后使用pathconvert来获取所有文件的父目录并获取相对路径。

剩下的就是创建一个带有includes的dirset,它指定了pathconvert的路径(它还删除了重复的目录条目)。

<pathconvert pathsep="," property="filePaths">
    <map from="${basedir}/" to="" />
    <!-- get parent of file -->
    <regexpmapper from="(.*)\${file.separator}" to="\1" />
    <path>
        <!-- change dir to your directory -->
        <fileset dir="${basedir}/dir" casesensitive="yes">
            <include name="**/*.*" />
        </fileset>
    </path>
</pathconvert>

<dirset dir="${basedir}/" casesensitive="yes" includes="${filePaths}" />

答案 1 :(得分:-1)

不确定您想要的任务。

无论如何,请尝试fileset,如下所示:

<fileset dir="${base.dir}" casesensitive="yes">
  <include name="**/*.*"/>
</fileset>