匹配占位符删除文件,我有两个目录:在另一个目录树
source/aaa/bbb/ccc/file01.txt
source/aaa/bbb/file02.txt
source/aaa/bbb/file03.txt
source/aaa/ddd/file03.txt
source/file01.txt
和
template/aaa/bbb/ccc/file01.txt
template/aaa/bbb/DELETE-file03.txt
template/aaa/DELETE-ddd
template/DELETE-file01.txt
使用Ant,我想要做的三件事情。首先,我想将任何文件从“模板”复制到“源”中,以便所有不以“DELETE-”开头的文件都被替换。例如,“source/aaa/bbb/ccc/file01.txt”将被替换。这是简单的搭配:
<copy todir="source" verbose="true" overwrite="true">
<fileset dir="template">
<exclude name="**/DELETE-*"/>
</fileset>
</copy>
其次,我想删除其名称匹配的“模板”树的相应目录下的“删除 - ”文件中的“源”树中的所有文件。例如,“source/aaa/bbb/file03.txt”和“source/file01.txt”都将被删除。我已经能够做到这一点:
<delete verbose="true">
<fileset dir="source">
<present present="both" targetdir="template">
<mapper type="regexp" from="(.*[/\\])?([^/\\]+)" to="\1DELETE-\2"/>
</present>
</fileset>
</delete>
第三,我想删除其名称匹配的相同方式的任何目录(空或不)。例如,“template/aaa/DELETE-ddd”及其下的所有文件都将被删除。我不知道如何在目录在“模板”树中具有DELETE- *文件的“源”树中构建与目录(及其下的所有文件)相匹配的文件集。
这是第三个任务甚至可以用Ant(1.7.1)?我最好喜欢在不写任何自定义ant任务/选择器的情况下执行此操作。
我想你们误解了我的问题。我想从中删除文件/目录(源)的树不是与其中具有DELETE- *文件(模板)的树。 – GreenGiant 2012-04-18 14:21:16