删除文件夹除外

时间:2013-03-25 16:17:42

标签: ant

在src文件夹下我有以下文件夹:daos,business和model,我想用ant脚本删除,除了“model”之外的所有文件夹所以我试过了:

    <delete includeemptydirs="true">
    <fileset dir="${basedir}/src">
    <include name="**/*"/>
    <exclude name="model/*"/>
    </fileset>
   </delete>

删除所有文件夹的excpet“model”,这是空的!它的所有文件都被删除了!

2 个答案:

答案 0 :(得分:8)

尝试改为

<delete includeemptydirs="true">
    <fileset dir="${basedir}/src">
        <include name="**/*"/>
        <exclude name="**/model/**"/>
    </fileset>
</delete>

答案 1 :(得分:6)

对未来的googlers:

对我有用的是什么:

<fileset dir="target">
    <include name="*/"/>
    <exclude name="big_and_complex_dir/"/>
</fileset>

删除target/以外的所有内容(每个文件目录),target/big_and_complex_dir除外。

我的目标是避免不必要的目录演练,如果“big_and_complex_dir”需要很长时间。

似乎ant的文件集解释具有非平凡,非直观的行为,如果我们打算执行递归子目录操作,我们需要用/关闭包含/排除路径。