包含文件的所有子目录的 Ant Dirset
Ant Dirset of all Sub-Directories which contain Files
我需要制作一个目录集,其中包含所有包含文件的低级目录。
因此,例如这样的结构:
.
├── _a
├── _b
| ├── file1.class
| └── file2.class
├── _c
| └── _d
| └── file3.class
├── _e
| ├── _f
| └── _g
└── _h
└── file4.class
会导致目录混乱:
./b/
./c/d/
./h/
我怎样才能做到这一点?
不确定你想要哪个任务。
无论如何,尝试 fileset
,如下所示:
<fileset dir="${base.dir}" casesensitive="yes">
<include name="**/*.*"/>
</fileset>
我找到了解决办法,就是先在我需要扫描的目录下创建一个文件集,然后使用pathconvert来获取所有文件的父目录和相对路径。
剩下的就是创建一个目录集,其中包含指定路径转换的路径(它还会删除重复的目录条目)。
<pathconvert pathsep="," property="filePaths">
<map from="${basedir}/" to="" />
<!-- get parent of file -->
<regexpmapper from="(.*)${file.separator}" to="" />
<path>
<!-- change dir to your directory -->
<fileset dir="${basedir}/dir" casesensitive="yes">
<include name="**/*.*" />
</fileset>
</path>
</pathconvert>
<dirset dir="${basedir}/" casesensitive="yes" includes="${filePaths}" />
我需要制作一个目录集,其中包含所有包含文件的低级目录。 因此,例如这样的结构:
.
├── _a
├── _b
| ├── file1.class
| └── file2.class
├── _c
| └── _d
| └── file3.class
├── _e
| ├── _f
| └── _g
└── _h
└── file4.class
会导致目录混乱:
./b/
./c/d/
./h/
我怎样才能做到这一点?
不确定你想要哪个任务。
无论如何,尝试 fileset
,如下所示:
<fileset dir="${base.dir}" casesensitive="yes">
<include name="**/*.*"/>
</fileset>
我找到了解决办法,就是先在我需要扫描的目录下创建一个文件集,然后使用pathconvert来获取所有文件的父目录和相对路径。
剩下的就是创建一个目录集,其中包含指定路径转换的路径(它还会删除重复的目录条目)。
<pathconvert pathsep="," property="filePaths">
<map from="${basedir}/" to="" />
<!-- get parent of file -->
<regexpmapper from="(.*)${file.separator}" to="" />
<path>
<!-- change dir to your directory -->
<fileset dir="${basedir}/dir" casesensitive="yes">
<include name="**/*.*" />
</fileset>
</path>
</pathconvert>
<dirset dir="${basedir}/" casesensitive="yes" includes="${filePaths}" />