0

我需要创建一个包含所有包含文件的低级目录的目录集。因此,例如一个结构,如:

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

将导致目录的dirset:

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

我怎么能做到这一点?

4

2 回答 2

1

我找到了解决方案,首先在我需要扫描的目录中创建一个文件集,然后使用 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}" />
于 2017-08-21T11:57:31.817 回答
-1

不知道你想要哪个任务。

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

<fileset dir="${base.dir}" casesensitive="yes">
  <include name="**/*.*"/>
</fileset>
于 2017-08-21T06:53:32.217 回答