查找包含某个文件的所有子目录的任务



我正在努力在Ant中找出这个任务。文档中没有很多例子,我似乎在网上找不到一个可靠的答案。

我需要扫描一个包含几个子目录的目录,例如

    • TargetFolder

      • 文件夹
      • 文件夹B
      • 文件夹C

      ……

      • 文件夹Z

我需要从根运行build.xml,并使用任务扫描TargetFolder的所有子目录(因此文件夹a, B, C等),如果目录包含文件foo.txt,则为该目录运行<apply>任务。

我能够做一个<dirset>并获得子目录的列表。我可以做一个单独的<fileset>来扫描TargetFolder,并得到foo.txt的所有出现。但是,我不知道如何组合这些东西,或者如何去做一个简单的文件检查附加到<apply>任务。

这是一种方法。如您所说,使用dirset和<present>选择器:

<dirset id="dirs" dir="Root">
<present targetdir="Root">
<mapper type="glob" from="*" to="*/foo.txt" />
</present>
</dirset>

<apply executable="ls">
<arg value="-alF" />
<dirset refid="dirs" />
</apply>

你可以把这两个合并成一个任务:

<apply executable="ls">
<arg value="-alF" />
<dirset id="dirs" dir="Root">
<present targetdir="Root">
<mapper type="glob" from="*" to="*/foo.txt" />
</present>
</dirset>
</apply>

最新更新