file - Ant任务查找包含某个文件的所有子目录
问题描述
我正在努力在 Ant 中找出这个任务。文档中的示例并不多,我似乎无法在网上找到可靠的答案。
我需要扫描一个包含多个子目录的目录,例如
- 根
目标文件夹
- 文件夹 A
- 文件夹 B
- 文件夹 C
...
- 文件夹 Z
我需要从 Root 运行 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>
推荐阅读
- ios - 我想让我的电脑被 iphone 视为外接键盘
- azure - Azure 应用程序网关 appGatewayBackendHttpSettings
- python - Python Django:从模型 CharField 中删除 null=true
- spring - java-graphql - 无法将类型定义与 java 类型匹配
- eclipse - BIRT Eclipse - 无法识别“?”附近的输入
- javascript - 模态关闭后控制到父屏幕
- spring - weblogic上的spring-boot rest应用程序
- php - 头文件中的php变量
- amazon-web-services - 如何删除/撤消/删除 Amazon Aurora RDS 上的待处理修改?
- c - 选择排序算法 (C)